2015-04-21 5 views
0

Я играю с API-интерфейсом Collection в java и через два разных способа распечатываю элементы в коллекции. Мне нужно знать, какой из них лучше всего использовать в любой ситуации.Каков наилучший способ печати элементов класса Collection?

Первый метод заключается в использовании метода .toString() (неявно) в интерфейсе Collection. Второй способ - использовать итераторы и посетить каждый элемент и распечатать его. (Этот код прокомментирован)

public class Test { 

    static Set<String> mySet1 = new HashSet<>(); 
    static Set<String> mySet2 = new LinkedHashSet<>(); 

    public static void main(String[] args) { 

     String[] arr = {"hello","world","I","am","Tom"}; 
     for(int i=0; i<arr.length;i++){ 
      mySet1.add(arr[i]); 
      mySet2.add(arr[i]); 
     } 

     System.out.println("HashSet prinitng..."); 
     /* Iterator iter1 = mySet1.iterator(); 
     while(iter1.hasNext()){ 
      System.out.println(iter1.next()); 
     }*/ 

     System.out.println(mySet1); 

     System.out.println("LinkedHashSet printing"); 
     /* 
     Iterator iter2 = mySet2.iterator(); 
     while(iter2.hasNext()){ 
      System.out.println(iter2.next()); 
     }*/ 

     System.out.println(mySet2); 
    } 
} 

Что лучше и почему?

ответ

2

В Java 8, вы можете просто:

mySet2.forEach(System.out::println); 

В более ранних версиях:

for (String str : mySet2) 
    System.out.println(str); 
+0

что имеет в виду :: оператор? – DesirePRG

+0

@DesirePRG [это] (http://stackoverflow.com/questions/20001427/double-colon-operator-in-java-8) может оказаться полезным. Этот синтаксис был введен в Java 8. – Maroun

Смежные вопросы