如何快速方便地创build一个元素arraylist
是否有一个实用程序的方法可以做到这一点在1行? 我无法在Collections或List任何位置find它。 
 public List<String> stringToOneElementList(String s) { List<String> list = new ArrayList<String>(); list.add(s); return list; } 
我不想重新发明轮子,除非我打算把它放在花哨的边缘。
 那么…types可以是T ,而不是String 。 但你明白了。  (所有的空检查,安全检查等) 
 固定大小List 
 我所知道的最简单的方法是用Arrays.asList(T...)创build一个固定大小的单元素List 
 // Returns a List backed by a varargs T. return Arrays.asList(s); 
 可变大小List 
 如果需要改变大小,你可以构造一个ArrayList和固定大小的List 
 return new ArrayList<String>(Arrays.asList(s)); 
 和(在Java 7以上),你可以使用钻石操作符<>来创build它 
 return new ArrayList<>(Arrays.asList(s)); 
 Collections.singletonList(object) 
 您可以使用实用程序方法Arrays.asList并将该结果input到新的ArrayList 。 
 ArrayList<String> list = new ArrayList<String>(Arrays.asList(s)); 
其他选项:
 ArrayList<String> list = new ArrayList<String>(Collections.nCopies(1, s)); 
和
 ArrayList<String> list = new ArrayList<String>(Collections.singletonList(s)); 
-   ArrayList(Collection)构造函数。
-   Arrays.asList方法。
-   Collections.nCopies方法。
-   Collections.singletonList方法。
使用Java 8 Streams:
 Stream.of(object).collect(Collectors.toList()) 
或者如果你需要一套:
 Stream.of(object).collect(Collectors.toSet()) 
非常简单:
 Arrays.asList("Hi!") 
 其他答案全部使用Arrays.asList() ,它返回一个不可修改的列表(如果尝试添加或删除元素,则抛出UnsupportedOperationException )。 为了得到一个可变列表,你可以将返回的列表封装在一个新的ArrayList作为一个答案指出,但一个更干净的解决scheme是使用Guava的 Lists.newArrayList() (自从2011年发布至lessGuava 10以来)。 
例如:
 Lists.newArrayList("Blargle!"); 
看到番石榴得到提及,我想我也会build议Eclipse集合 (以前称为GScollections)。
 以下示例都返回一个List与单个项目。 
 Lists.mutable.of("Just one item"); Lists.mutable.with("Or use with"); Lists.immutable.of("Maybe it must be immutable?"); Lists.immutable.with("And use with if you want"); 
其他collections也有类似的方法。
另外一个select是双重大括号初始化 ,例如
 new ArrayList<String>() {{ add(s); }}; 
但效率不高,模糊不清 。 所以只适合:
- 在不介意内存泄漏的代码中,比如大多数unit testing和其他短命的程序;
- 如果没有其他的解决scheme适用,我想这意味着你一直滚动到这里查找填充不同types的容器比ArrayList在问题中。