java - 打印 Collection 类元素的最佳方法是什么?

标签 java collections

我正在使用java中的Collection API,并通过两种不同的方式来打印集合中的元素。我需要知道在任何情况下哪种方法是最好的。

第一种方法是在 Collection 接口(interface)中使用 .toString() 方法(隐式)。 第二种方法是使用迭代器并访问每个元素并将其打印出来。 (此代码已注释)

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);
    }
}

哪个更好,为什么?

最佳答案

在 Java 8 中,您可以简单地:

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

在早期版本中:

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

关于java - 打印 Collection 类元素的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29771824/

相关文章:

java - 为什么我同时在 HashMap 上迭代和修改时没有得到 "ConcurrentModificationException"?

Java Collection::toArray 及其子类

将多个集合作为一个访问的Java方法,无需连接

android - 在 Android 中按字母顺序排序列表

java - SSO 的 HTTP header 中的用户名

java - 自下而上填充一棵树

java - 在@Transactional 服务方法中捕获 DataIntegrityViolationException

java - 用Java加密字符串

多线程模式下的Java集合算法

javafx 线程同步 while true