复制集 Java
有没有办法复制?也就是说,是否有可能去TreeSet
Set <Item> itemList;
Set <Item> tempList;
tempList = itemList;
还是您必须以物理方式遍历这些集合并逐个复制它们?
有没有办法复制?也就是说,是否有可能去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
请注意,复制 Set
的结果是一个新 Set,
其中包含对作为元素的对象(如果是原始 Set)的引用
。不会复制或克隆元素对象本身。这符合 Java 集合
API 的设计工作方式:它们不复制元素对象。
从 Java 10 开始:
Set<E> oldSet = Set.of();
Set<E> newSet = Set.copyOf(oldSet);
Set.copyOf()
返回一个不可修改的,其中包含给定的元素。Set
Collection
给定的不能是 ,并且不能包含任何元素。Collection
null
null