只是出于好奇,我想知道 TreeSet 是如何维持秩序的。当然,通过元素对象的比较器或任何自定义比较器比较新元素以添加到以前的元素。但是可能有比比较所有更好的方法。让我们看一些代码:
TreeSet<String> tset= new TreeSet<>(new comparator<String>());
tset.add("america");
tset.add("britain");
tset.add("india");
tset.add("checksolvakia");
tset.add("china");
tset.add("sri_lanka");
tset.add("zimbabwe");
for(String str:tset){
System.out.println(str);
}
在上面的代码new comparator<String>()
中只是一个自定义比较器,用于进行正常的字符串比较。
The output drom above code is:
i have been called times:1
values America America
i have been called times:2
values Britain America
i have been called times:3
values india America
i have been called times:4
values india Britain
i have been called times:5
values checksolvakia Britain
i have been called times:6
values checksolvakia india
i have been called times:7
values china Britain
i have been called times:8
values china india
i have been called times:9
values china checksolvakia
i have been called times:10
values sri_lanka Britain
i have been called times:11
values sri_lanka china
i have been called times:12
values sri_lanka india
i have been called times:13
values zimbabwe Britain
i have been called times:14
values zimbabwe china
i have been called times:15
values zimbabwe india
i have been called times:16
values zimbabwe sri_lanka
america
britain
checksolvakia
china
india
sri_lanka
zimbabwe
现在的问题是:
1. 为什么将美国与美国相提并论?
2.为什么其他人都没有与美国相提并论?是否设置为Root?
即使它被设置为 root 为什么不与 root 比较。3.say zimbabwe
could be compare to something not Britain
(即不是从一开始)的比较可能会更少。