另一种方法是使用复制构造函数:
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设计的工作方式:它们不复制元素对象。



