TreeSet 源码解读
import java.util.Comparator;
import java.util.TreeSet;
public class TreeSet01 {
@SuppressWarnings({"all"})
public static void main(String[] args) {
TreeSet treeSet = new TreeSet(new Comparator() {
@Override
public int compare(Object o1, Object o2) {
//下面 调用String的 compareTo方法进行字符串大小比较
// return ((String)o2).compareTo((String)o1);
//要求加入元素,按照长度大小排序
return ((String)o2).length() - ((String)o1).length();
}
});
treeSet.add("Jack");
treeSet.add("Rose");
treeSet.add("CiCi");
treeSet.add("XiXi");
treeSet.add("XiXi"); //不可添加重复元素
System.out.println(treeSet);
}
}
TreeMap 源码解读
import java.util.Comparator;
import java.util.TreeMap;
public class TreeMap01 {
public static void main(String[] args) {
//使用默认的构造器,创建TreeMap,是无序的(也没有排序)
// TreeMap treeMap = new TreeMap();
TreeMap treeMap = new TreeMap(new Comparator() {
@Override
public int compare(Object o1, Object o2) {
//按照传入数据的大小进行排序
// return ((String)o1).compareTo((String)o2);
//按照传入数据的长度进行排序,相同长度只会输入一个,就是相同第一个添加的
return ((String)o1).length() - ((String)o2).length();
}
});
treeMap.put("Rose",8);
treeMap.put("Jack",1);
treeMap.put("Tom",2);
treeMap.put("CiCi",3);
treeMap.put("Rose",4);
System.out.println(treeMap);
}
}