一尘不染

复制集Java

java

有没有办法复制TreeSet?也就是说,有可能去

Set <Item> itemList;
Set <Item> tempList;

tempList = itemList;

还是您需要物理遍历这些集合并一一复制?


阅读 213

收藏
2020-12-03

共1个答案

一尘不染

另一种方法是使用复制构造函数

Collection<E> oldSet = ...
TreeSet<E> newSet = new TreeSet<E>(oldSet);

或创建一个空集并添加元素:

Collection<E> oldSet = ...
TreeSet<E> newSet = new TreeSet<E>();
newSet.addAll(oldSet);

clone这些不同,您可以使用不同的集合类,不同的比较器,甚至使用其他(非集合)集合类型填充。


请注意,复制a的结果Set是一个新的,Set包含对作为原始元素的对象的引用Set。元素对象本身不会被复制或克隆。这符合Java
CollectionAPI设计的工作方式:它们不复制元素对象。

2020-12-03