То, что вы сделали с итерацией, не является неправильным из того, что я могу сделать из этого на основании вопроса.Это дает вам действительный массив объектов String.Как упомянуто в другом ответе, однако, проще использовать метод toArray (), доступный для объекта ArrayList => http://docs.oracle.com/javase/1.5.0/docs/api/java/util/ArrayList.html#toArray%28%29
Просто примечание.Если вы правильно итерируете массив dsf и печатаете каждый элемент самостоятельно, вы получите корректный вывод.Например:
for(String str : dsf){
System.out.println(str);
}
То, что вы, вероятно, пытались сделать, - это сразу распечатать полный объект Array, так как это даст адрес памяти объекта, который вы получили в своем вопросе.Если вы видите такой вывод, вам нужно предоставить метод toString () для объекта, который вы печатаете.