我如何初始化一个集合并在同一行添加数据?

这个问题在这里已经有了答案:

  • 在一行中初始化ArrayList 32个答案

  • 如果你需要一个只读 List

    List<String> numbers = Arrays.asList("one","two","three");
    
    // Can't add since the list is immutable
    numbers.add("four"); // java.lang.UnsupportedOperationException
    

    如果您想稍后修改 List

    List<String> numbers2 = new ArrayList<String>(
                                Arrays.asList("one","two","three"));
    numbers2.add("four");
    
    System.out.println(numbers2); // [one, two, three, four]
    

    我更喜欢使用Guava(以前称为Google Collections)库来完成这项工作,这既省去了再次写入类型的需要,而且可以用各种方式直接添加数据。

    示例: List<YourClass> yourList = Lists.newArrayList();

    或者添加数据: List<YourClass> yourList = Lists.newArrayList(yourClass1, yourclass2);

    所有其他类型的集合及其各种实现也是如此。 另一个例子: Set<String> treeSet = Sets.newTreeSet();

    你可以在https://code.google.com/p/guava-libraries/找到它。


    你可以使用Arrays.asList(T... a)

    List<String> foo = Arrays.asList("one","two","three");
    

    正如Boris在评论中提到的那样, List是不可变的(即只读)。 您需要将其转换为ArrayList或类似的才能修改集合:

    List<String> foo = new ArrayList<String>(Arrays.asList("one","two","three"));
    

    您还可以使用匿名子类和初始化程序创建List

    List<String> foo = new ArrayList<String>() {
        {
            add("one");
            add("two");
            add("three");
        }
    };
    
    链接地址: http://www.djcxy.com/p/27707.html

    上一篇: How can I initialize a collection and add data on the same line?

    下一篇: How to declare an ArrayList with values?