2014-10-16 2 views
1

У меня есть ArrayList, в котором хранятся объекты класса StringBuffer. Теперь я хочу напечатать это ArrayList. Как я мог это сделать.print ArrayList, который содержит объекты StringBuffer

Iterator itr=al.iterator(); 
while(itr.hasNext()) 
{ 
    System.out.println(itr.next()); 
} 

Это просто печатает последний объект для al.size раз. Кроме того, если вы могли бы, пожалуйста, скажите мне, почему он только печатает значение последнего объекта

+6

Wild догадка, список содержит тот же 'StringBuffer' экземпляр. Вы должны показать нам больше кода –

+0

Он должен работать. Никаких изменений не требуется. –

+0

В этом случае 'ArrayList' имеет хорошо управляемую' toString', и я просто использую 'System.out.println (al)'. – chrylis

ответ

2
public class Test { 

    public static void main(String[] args) { 

     ArrayList al = new ArrayList(); 
     al.add(new StringBuffer("keshav")); 
     al.add(new StringBuffer("sharma")); 

     Iterator itr = al.iterator(); 
     while (itr.hasNext()) { 
      System.out.println(itr.next()); 
     } 

    } 

} 

Сво работает нормально для меня.

выход:

keshav 
sharma 
+1

спасибо Кешав Шарма, что сработало. На самом деле я не создавал новый объект StringBuffer при добавлении в arraylist. – Learner