TreeSet
package October;
import java.util.*;
@SuppressWarnings({"all"})
public class Test {
public static void main(String[] args) {
//使用它提供的构造器进行排序new Comparator(){}
TreeSet treeSet = new TreeSet(new Comparator() {
@Override
public int compare(Object o1, Object o2) {
//将o1和o2向下转型调用字符串的比较方法
//根据返回的数值进行排序
//return ((String)o1).compareTo((String)o2);
//根据长度进行比较排序
return ((String)o1).length()-((String)o2).length();
}
});
treeSet.add("rick");
treeSet.add("morty");
treeSet.add("summer");
//该句无法添加,因为调用了TreeSet的排序构造器
//它会根据return的规则来判断,“rick”的字符串长度为4,“beth”也为4
//所以添加不进去,如果是使用字符串比较,则是判断有无相同的字符。
treeSet.add("beth");
System.out.println(treeSet);
}
}
TreeMap的用法和规则和TreeSet一样,只不过它接收的是键对值。
package October;
import java.util.*;
public class Test {
public static void main(String[] args) {
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("morty","莫蒂");
treeMap.put("rick","瑞克");
treeMap.put("summer","夏茉");
System.out.println(treeMap);
}
}