创建一个列表,添加一个元素并在一个语句中将其返回给调用者

use*_*195 3 java list

有没有办法创建一个列表并添加一个元素并在一个语句中返回结果列表?

return new ArrayList<Email>().add(email); 
Run Code Online (Sandbox Code Playgroud)

以上原因并不明显.谢谢.

icz*_*cza 9

固定尺寸的解决方案

尝试:

return Arrays.asList(email);
Run Code Online (Sandbox Code Playgroud)

请注意,返回的列表将是固定大小.引用javadoc:

返回由指定数组支持的固定大小的列表.此方法与基于数组的API和基于集合的API之间的桥梁相结合Collection.toArray().返回的列表是可序列化的并实现RandomAccess.

因此,您可以更改返回的元素List,但不能执行更改其大小的操作.

看这个例子:

String email = "as@as.com";
List<String> list = Arrays.asList(email);

list.set(0, "bs@bs.com"); // OK
list.clear();             // throws UnsupportedOperationException
list.add("cc@cc.com");    // throws UnsupportedOperationException
Run Code Online (Sandbox Code Playgroud)

一般解决方案

如果您需要使返回的列表完全可修改,您仍然可以在一行中执行:

return new ArrayList<>(Arrays.asList(email));
Run Code Online (Sandbox Code Playgroud)

所以基本上只需创建一个新的ArrayList初始化的固定大小列表Arrays.asList().虽然这对于如何List创建一个元素并不是真正的惯用,但它解决了你的问题.