TreeMap
TreeMap<键,值对>
底层是红黑树,元素放进去之后会自动根据key排序。
测试代码
测试TreeMap的使用、Comparabe自定义类的自定义排序方式e
package cn.hanquan.test;
import java.util.Map;
import java.util.TreeMap;
public class TreeMapTest {
public static void main(String[] args) {
Map<Employee, String> treemap1 = new TreeMap<>();
treemap1.put(new Employee(5, "布小谷", 2000), "buxiaogu");
treemap1.put(new Employee(2, "淳于乔", 5000), "chunyuqiao");
treemap1.put(new Employee(1, "魔鬼鱼", 5000), "moguiyu");
treemap1.put(new Employee(3, "雷军", 10000), "leijun");
treemap1.put(new Employee(4, "雷奕明", 3000), "leiyiming");
for (Employee key : treemap1.keySet()) {
System.out.println(key.toString() + "->" + treemap1.get(key));
}
}
}
class Employee implements Comparable<Employee> {
int id;
String name;
double salary;
public Employee(int id, String name, double salary) {
super();
this.id = id;
this.name = name;
this.salary = salary;
}
@Override
public int compareTo(Employee o) {//自己的比较规则
if (this.salary > o.salary) {
return 1;
} else if (this.salary < o.salary) {
return -1;
} else if (this.id > o.id) {
return 1;
} else if (this.id < o.id) {
return -1;
} else
return 0;
}
public String toString() {
String str = new String(id + " " + name + " " + salary);
return str;
}
}
输出
5 布小谷 2000.0->buxiaogu
4 雷奕明 3000.0->leiyiming
1 魔鬼鱼 5000.0->moguiyu
2 淳于乔 5000.0->chunyuqiao
3 雷军 10000.0->leijun