Java 如何解决这个树集程序?
这是一个java问题。我只想问一下,为什么原来的列表中也添加了9Java 如何解决这个树集程序?,java,collections,treeset,Java,Collections,Treeset,这是一个java问题。我只想问一下,为什么原来的列表中也添加了9 class Test { public static void main(String args[]){ TreeSet<Integer> ts=new TreeSet<Integer>(); ts.add(1); ts.add(8); ts.add(6); ts.add(4); SortedSet<Integer>
class Test {
public static void main(String args[]){
TreeSet<Integer> ts=new TreeSet<Integer>();
ts.add(1);
ts.add(8);
ts.add(6);
ts.add(4);
SortedSet<Integer> ss = ts.subSet(2, 10);
ss.add(9);
System.out.println(ts);
System.out.println(ss);
}
}
类测试{
公共静态void main(字符串参数[]){
树集ts=新树集();
ts.add(1);
ts.add(8);
ts.add(6);
ts.add(4);
分拣集ss=ts子集(2,10);
ss.添加(9);
系统输出打印项次(ts);
系统输出打印LN(ss);
}
}
请帮忙 正如Alowaniak在评论中所说,
subset
只返回原始集合的视图,因此更改会反映到两个集合中。报告说:
此集合支持返回的集合,因此返回集合中的更改将反映在此集合中,反之亦然
例如,您可以基于子集创建一个新集合:
Set<Integer> ss = new TreeSet<Integer>(ts.subSet(2, 10));
Set ss=新树集(ts.subSet(2,10));
为了防止这种行为。正如Alowaniak在注释中所述,
子集
只返回原始集合的视图,因此更改将反映到两个集合中。报告说:
此集合支持返回的集合,因此返回集合中的更改将反映在此集合中,反之亦然
例如,您可以基于子集创建一个新集合:
Set<Integer> ss = new TreeSet<Integer>(ts.subSet(2, 10));
Set ss=新树集(ts.subSet(2,10));
以防止这种行为。返回原始文件的视图。返回原始视图的视图。