我知道你可以在实例化过程中初始化一个数组,如下:
String[] names = new String[] {"Ryan", "Julie", "Bob"};
有没有办法对数组列表做同样的事情?或者我必须用array.add()单独添加内容?
我知道你可以在实例化过程中初始化一个数组,如下:
String[] names = new String[] {"Ryan", "Julie", "Bob"};
有没有办法对数组列表做同样的事情?或者我必须用array.add()单独添加内容?
当前回答
这个怎么样?
ArrayList<String> names = new ArrayList<String>();
Collections.addAll(names, "Ryan", "Julie", "Bob");
其他回答
Arrays.asList("Ryan", "Julie", "Bob");
数组。asList可以在这里提供帮助:
new ArrayList<Integer>(Arrays.asList(1,2,3,5,8,13,21));
Yes.
new ArrayList<String>(){{
add("A");
add("B");
}}
这实际上是在创建一个派生自ArrayList<String>的类(外部花括号的功能),然后声明一个静态初始化器(内部花括号的功能)。这实际上是包含类的内部类,所以它有一个隐式This指针。这不是问题,除非你想序列化它,或者你希望外部类被垃圾收集。
我知道Java 7将提供额外的语言结构来完成您想要的工作。
编辑:最近的Java版本为创建这样的集合提供了更多可用的函数,并且值得研究以上(在这些版本之前提供)
在Java中,列表没有文字语法,所以你必须使用.add()。
如果你有很多元素,这有点啰嗦,但你可以:
使用Groovy或类似的东西 使用arrays . aslist(数组)
2看起来像这样:
String[] elements = new String[] {"Ryan", "Julie", "Bob"};
List list = new ArrayList(Arrays.asList(elements));
但是这会导致一些不必要的对象创建。
这个怎么样?
ArrayList<String> names = new ArrayList<String>();
Collections.addAll(names, "Ryan", "Julie", "Bob");