【问题标题】:what's the quickest way to convert an array to a LIST or Set?将数组转换为 LIST 或 Set 的最快方法是什么?
【发布时间】:2012-01-16 14:55:10
【问题描述】:

在 Java 中,将数组转换为列表或集合的最快方法是什么?

String[] a = {"Test1", "test2"};

List<String> l = new ArrayList<String>();

【问题讨论】:

  • “最快的方法是什么” 请随机的陌生人为你做这件事?哦等等,你已经知道了。

标签: java


【解决方案1】:

使用java.util.Arrays 类。

List<String> list = Arrays.asList(new String[] {"a", "b"});

请注意,通过上述方法得到的List 的实现与java.util.ArrayList 不同。如果您想要ArrayList 实现,请使用

List<String> list = new ArrayList<String>(Arrays.asList(new String[] {"a", "b"}));

【讨论】:

    【解决方案2】:

    要将数组转换为列表,请使用Arrays.asList:

    String[] a = {"Test1", "test2"};
    List<String> list = Arrays.asList(a);
    

    将数组转换为集合:

    Set<String> set = new HashSet<String>(Arrays.asList(a));
    

    【讨论】:

      【解决方案3】:

      来自数组类 (doc):

      List<String> l = Arrays.asList(a);
      

      【讨论】:

        【解决方案4】:

        http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#asList(T...)

        这取决于您对“最快”的定义,但在这两种情况下都是这样。

        【讨论】:

          【解决方案5】:
          List list = Arrays.asList(array);
          
          Collections.addAll(list, array);
          

          第一个谷歌链接之一: http://javarevisited.blogspot.com/2011/06/converting-array-to-arraylist-in-java.html

          【讨论】:

            【解决方案6】:

            使用 Google 的 Guava API,使用集合要简单得多。

            String[] a = {"Test1", "test2"};
            List<String> l = Lists.newArrayList(a);
            

            【讨论】:

              【解决方案7】:

              Arrays.asList() 适用于您的 String[] 示例,但如果您正在转换原始数组,例如 int[] 或 double[],那么这将生成数组的单个项目列表。一个好的解决方案是使用 Google Guava 的原始辅助类,例如Ints

              int[] a = new int[]{1,2,3}; 
              List<Integer> l = Ints.asList(a);
              

              更详细的解释见this answer

              【讨论】:

                猜你喜欢
                • 2011-03-10
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-02-17
                • 1970-01-01
                • 2015-05-15
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多