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