java - 将列表复制到另一个列表(带或不带 'new')之间的区别 - JAVA

标签 java list copy clone

1)有什么区别

for (MyObject myObject : sessionBean.firstList()) {
    secondList.add(new MyObject(myObject.getSeverity(), myObject.getSummary(), myObject.getDetail()));
}

for (MyObject myObject : sessionBean.firstList()) {
    secondList.add(facesMessage);
}

考虑到我稍后想要清除 sessionBean.firstList 但想要保留 secondaryList 中的值。

2)在 java 8 中是否有更易读的方法?

最佳答案

您可以以可读的方式在单个语句中完成此操作:

   secondList.addAll(sessionBean.firstList())

当您使用new时,您将分配额外的内存,否则您将映射现有对象的引用。即使您想稍后清除 sessionBean.firstList,如果您在另一个集合中拥有该对象的有效引用,它也不会被垃圾收集器收集。所以我看不到任何有效的场景来强制使用 new 运算符。

关于java - 将列表复制到另一个列表(带或不带 'new')之间的区别 - JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48979428/

相关文章:

python - python 字符串连接问题

将字符串中的一个字母复制到另一个字符串中

Java Velocity 引擎初始化问题

java - hibernate 更新查询中的值未更新

list - 如何将文件的内容读入 Lisp 中的列表?

在 C 中复制多维数组

django - 复制 django 模型实例的所有字段

Java String 将 '&' 替换为 & 而不是 & 为 &

java - 如何修复由 : java.net.BindException : Address already in use: bind in Quarkus? 引起的错误

.net - List (of T) 和 Collection(of T) 有什么区别?