有没有办法复制TreeSet?也就是说,有可能去
TreeSet
Set <Item> itemList; Set <Item> tempList; tempList = itemList;
还是您需要物理遍历这些集合并一一复制?
另一种方法是使用复制构造函数:
Collection<E> oldSet = ... TreeSet<E> newSet = new TreeSet<E>(oldSet);
或创建一个空集并添加元素:
Collection<E> oldSet = ... TreeSet<E> newSet = new TreeSet<E>(); newSet.addAll(oldSet);
与clone这些不同,您可以使用不同的集合类,不同的比较器,甚至使用其他(非集合)集合类型填充。
clone
请注意,复制a的结果Set是一个新的,Set包含对作为原始元素的对象的引用Set。元素对象本身不会被复制或克隆。这符合Java CollectionAPI设计的工作方式:它们不复制元素对象。
Set
Collection