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

标签 java list

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

return new ArrayList<Email>().add(email); 

由于显而易见的原因,上述方法不起作用。谢谢。

最佳答案

固定尺寸​​解决方案

尝试:

return Arrays.asList(email);

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

Returns a fixed-size list backed by the specified array. This method acts as bridge between array-based and collection-based APIs, in combination with Collection.toArray(). The returned list is serializable and implements 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

通用解决方案

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

return new ArrayList<>(Arrays.asList(email));

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

关于java - 创建一个列表,添加一个元素并在一条语句中将其返回给调用者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26847696/

相关文章:

java - 我想在java中使用gsm调制解调器通过串行端口发送和接收短信

java - bindView() 中的 ListView.setItemChecked() 带走了我刚刚单击的 EditText 的焦点

c# - 从 C# 中的 List<T> 获取不同的值

python - deque.popleft() vs list.pop(0),性能分析

java - Android 还剩多少天

java - Java 十六进制字符串转换为字节

java - 如何扩展 jar 文件中的类?

c - 全局指针(链表头)未正确更新

python - 返回列表中元素的索引

list - 从列表中检索选定的项目