在Java中构造字符串的ArrayList,尽可能简单地使用Javascript

在Java中构造字符串的ArrayList,尽可能简单地使用Javascript,java,syntax,constructor,arraylist,Java,Syntax,Constructor,Arraylist,在JavaScript中,我可以构建一个字符串值数组,如: var stuff = new Array('foo','bar','baz','boz','gaz','goz'); 甚至更容易 var stuff = 'foo,bar,baz,boz,gaz,goz'.split(','); 在Java中,它似乎过于冗长和复杂。。。有比这更简单的方法吗 ArrayList<String> stuff = new ArrayList<String>(); stuff.ad

JavaScript中,我可以构建一个字符串值数组,如:

var stuff = new Array('foo','bar','baz','boz','gaz','goz');
甚至更容易

var stuff = 'foo,bar,baz,boz,gaz,goz'.split(',');
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");
ArrayList stuff=new ArrayList();
添加(“foo”);
添加(“条”);
添加(“baz”);
添加(“boz”);
添加(“gaz”);
添加(“goz”);
在我的实际场景中,我有30-40个条目进入ArrayList。。。我想应该有更简单的方法!我忽略的最明显的一点是什么?

列出strings=Arrays.asList(新字符串[]{“foo”、“bar”、“baz”})
List strings=Arrays.asList(“foo,bar,baz.split”(“,”)

Arrays.asList()是获取列表实现的好方法,尽管从技术上讲它不是ArrayList实现,而是内部类型

如果您确实需要它成为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;
}
创建公共静态列表(字符串…项){
列表=新的ArrayList(items.length);
用于(字符串项:项){
列表。添加(项目);
}
退货清单;
}

如果在编译时将30-40个项目塞入列表,这可能是更严重疾病的症状。这在很大程度上取决于你正在实施什么。如果你真的想要的话,你仍然可以使用。然后,只需在列表中大量插入即可。

请注意,我自己只是在学习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]);   
    }
}
import java.util.*;
类ArrayListString{
公共静态void main(字符串[]args){
字符串[]stuffArray={“foo”、“bar”、“baz”、“boz”、“gaz”、“goz”};
ArrayList stuff=新的ArrayList();
stuff.addAll(Arrays.asList(stuffArray));
for(int i=0;i
输出为:

foo
酒吧
baz
boz
gaz
戈兹


如何使用下面的代码

导入静态com.google.common.collect.Lists.*;
列表内容=newArrayList(“foo”、“bar”、“baz”、“boz”、“gaz”、“goz”);

别忘了
var stuff=['foo','bar','baz','boz','gaz','goz']如果您对Java 7感兴趣,请在此处阅读有关集合文本的更多信息:我应该补充一点,splix有一个很好的解决方案,您可能不关心实际的实现,但是您必须将变量声明从“ArrayList stuff”更改为“List stuff”
数组。asList
接受varargs参数。因此它可以被称为
List strings=Arrays.asList(“foo”、“bar”、“baz”)
。更好的方法是,为
数组执行
导入静态
。asList
,然后它变得更简单:
List strings=asList(“foo”、“bar”、“baz”)
@abhin4v:最后一个就是我使用的;它极大地减少了噪音,而且它也在基本库中。对于实际的
java.util.ArrayList
,您需要将其包装在
new
java.util.ArrayList(…)`;asList返回一个Arrays.ArrayList,它是数组的不可变包装器。实际上它不是完全不可变的,您不能添加或删除它,但您可以更改元素(就像在普通数组中一样)。
import static com.google.common.collect.Lists.*;

List<String> stuff = newArrayList("foo","bar","baz","boz","gaz","goz");