package org.westos.TreeMap集合博客练习; import java.util.Set; import java.util.TreeMap; /** * TreeMap集合 * 基于红黑树结构的Map接口的实现 * */ public class Text1 { public static void main(String[] args) { TreeMap<Integer,String> map = new TreeMap<>(); map.put(23, "hello"); map.put(23, "world"); map.put(432, "apple"); map.put(55, "java"); map.put(87, "javaee"); map.put(45, "javase"); map.put(65, "python"); Set<Integer> set = map.keySet(); for(Integer i:set) { String s = map.get(i); System.out.println(i+"-----"+s);//对键按自然顺序进行了排序 } } }
package org.westos.TreeMap集合博客练习; import java.util.Set; import java.util.TreeMap; //对自定义对象的按年龄进行排序,使用自然排序的方法:自定义对象实现Comparable接口 public class Text2 { public static void main(String[] args) { TreeMap<Student,Integer> map = new TreeMap<Student,Integer>(); Student s1 = new Student("张三",11); Student s2 = new Student("李四",16); Student s3 = new Student("赵五",13); Student s4 = new Student("王六",17); Student s5 = new Student("张三",11); map.put(s1, 001); map.put(s2, 002); map.put(s3, 003); map.put(s4, 004); map.put(s5, 005); Set<Student> set = map.keySet(); for(Student s:set) { int i = map.get(s); System.out.println(s+"-----"+i); } } }
package org.westos.TreeMap集合博客练习2; import java.util.Set; import java.util.TreeMap; /** * 对自定义对象按照年龄大小排序,使用比较器排序 * 方式一: * 使用比较器排序需要重新定义一个类去实现Comparator接口,并在测试中创建该类对象; * 将对象作为参数传递给TreeSet集合对象 * 方式二: * 直接以匿名内部类的方式在测试类中写入 * */ public class Text3 { public static void main(String[] args) { CompImp c = new CompImp(); TreeMap<Student,Integer> map = new TreeMap<Student,Integer>(c); Student s1 = new Student("张三",11); Student s2 = new Student("李四",16); Student s3 = new Student("赵五",13); Student s4 = new Student("王六",17); Student s5 = new Student("张三",11); map.put(s1, 001); map.put(s2, 002); map.put(s3, 003); map.put(s4, 004); map.put(s5, 005); Set<Student> set = map.keySet(); for(Student s:set) { int i = map.get(s); System.out.println(s+"-----"+i); } } } package org.westos.TreeMap集合博客练习2; import java.util.Comparator; public class CompImp implements Comparator<Student> { @Override public int compare(Student s1, Student s2) { int num = s1.getAge()-s2.getAge(); int num2 = (num==0)?(s1.getName().compareTo(s2.getName())):num; return num2; } }