在 Java 中构造一个字符串的 ArrayList 就像在 Javascript 中一样简单
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/3198044/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Construct an ArrayList of strings in Java as simple as one can in Javascript
提问by danny
In JavaScriptI can build an Array of string values like:
在JavaScript 中,我可以构建一个字符串值数组,例如:
var stuff = new Array('foo','bar','baz','boz','gaz','goz');
or even easier
甚至更容易
var stuff = 'foo,bar,baz,boz,gaz,goz'.split(',');
In Javait seems overly verbose and complex... is there an easier way than this?
在Java 中,它似乎过于冗长和复杂……还有比这更简单的方法吗?
ArrayList<String> stuff = new ArrayList<String>();
stuff.add("foo");
stuff.add("bar");
stuff.add("baz");
stuff.add("boz");
stuff.add("gaz");
stuff.add("goz");
In my actual scenario I have 30-40 items going into the ArrayList... I figure there just has to be an easier way! What is the obvious bit I'm overlooking?
在我的实际场景中,我有 30-40 个项目进入 ArrayList ......我认为必须有一种更简单的方法!我忽略的明显一点是什么?
采纳答案by Igor Artamonov
List<String> strings = Arrays.asList(new String[] {"foo", "bar", "baz"});
or
List<String> strings = Arrays.asList("foo,bar,baz".split(","));
List<String> strings = Arrays.asList(new String[] {"foo", "bar", "baz"});
或者
List<String> strings = Arrays.asList("foo,bar,baz".split(","));
回答by Jeff
Arrays.asList() is a good way to get a List implementation, though it is technically not an ArrayList implementation, but an internal type.
Arrays.asList() 是获取 List 实现的好方法,尽管它在技术上不是 ArrayList 实现,而是内部类型。
If you truly need it to be an ArrayList you could write a quick utility method:
如果你真的需要它是一个 ArrayList 你可以编写一个快速的实用方法:
public static List<String> create(String... items) {
List<String> list = new ArrayList<String>(items.length);
for (String item : items) {
list.add(item);
}
return list;
}
回答by j flemm
If you're jamming 30-40 items into a list at compile time, that might be symptomatic of a greater ill. It depends a lot on what you're implementing. You can still use split, if you really want though. Then just do a mass insert to your list.
如果您在编译时将 30-40 个项目塞进一个列表中,那可能是病重的征兆。这在很大程度上取决于您正在实施的内容。如果你真的想要,你仍然可以使用split。然后只需对您的列表进行大量插入。
回答by GreenMatt
With the caveat that I'm just learning Java's Collections myself, the following compiles and runs for me:
需要注意的是,我自己只是在学习 Java 的集合,以下内容为我编译并运行:
import java.util.*;
class ArrayListStrings {
public static void main(String[] args) {
String[] stuffArray = {"foo","bar","baz","boz","gaz","goz"};
ArrayList<String> stuff = new ArrayList<String>();
stuff.addAll(Arrays.asList(stuffArray));
for (int i = 0; i < stuff.toArray().length; i++)
System.out.println(stuff.toArray()[i]);
}
}
The output is:
输出是:
foo
bar
baz
boz
gaz
goz
foo
bar
baz
boz
gaz
goz
回答by Aravind Yarram
how abt the below code using http://code.google.com/p/guava-libraries/
如何使用http://code.google.com/p/guava-libraries/编写以下代码
import static com.google.common.collect.Lists.*;
List<String> stuff = newArrayList("foo","bar","baz","boz","gaz","goz");