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;
}
}