是否有一个实用方法,可以在1行完成这个?我在收藏或列表中都找不到它。
public List<String> stringToOneElementList(String s) {
List<String> list = new ArrayList<String>();
list.add(s);
return list;
}
我不想重新发明轮子,除非我打算把花哨的轮辋上。
嗯…类型可以是T,而不是String。但你懂的。(所有的空检查,安全检查…等)
是否有一个实用方法,可以在1行完成这个?我在收藏或列表中都找不到它。
public List<String> stringToOneElementList(String s) {
List<String> list = new ArrayList<String>();
list.add(s);
return list;
}
我不想重新发明轮子,除非我打算把花哨的轮辋上。
嗯…类型可以是T,而不是String。但你懂的。(所有的空检查,安全检查…等)
当前回答
非常简单:
Arrays.asList("Hi!")
其他回答
还有一种方法是双大括号初始化,例如。
new ArrayList<String>() {{ add(s); }};
但它既低效又晦涩。因此只适合:
在不介意内存泄漏的代码中,例如大多数单元测试和其他短期程序; 如果其他的解决方案都不适用,我认为这意味着你已经一直向下滚动到这里,寻找填充一个不同类型的容器,而不是问题中的数组列表。
看到Guava被提到,我想我也会建议Eclipse Collections(以前称为GS Collections)。
下面的示例都返回一个包含单个项的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");
其他集合也有类似的方法。
非常简单:
Arrays.asList("Hi!")
Collections.singletonList(object)
此方法创建的列表是不可变的。
使用Java 8流:
Stream.of(object).collect(Collectors.toList())
或者如果你需要一组:
Stream.of(object).collect(Collectors.toSet())