TreeMap和Comparable接口
Posted lujunlong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TreeMap和Comparable接口相关的知识,希望对你有一定的参考价值。
备注:HashMap线程不安全,效率高,允许key、value为空
HasTable线程安全、效率低、不允许key或value为空
TreeMap在存储时会自动调用comparable方法进行排序,当key为类时可自行调用comparable接口
范例:
package cn.study.lu.four;
import java.util.TreeMap;
public class TestTreeMap
public static void main(String[] args)
TreeMap<Integer, String> str1 = new TreeMap<Integer, String>();
str1.put(1001, "aaa");
str1.put(333, "bbb");
str1.put(181, "ccc");
str1.put(9991, "ddd");
for (int k:str1.keySet())
System.out.println(k +"---"+str1.get(k));
System.out.println(str1);
TreeMap<emp, String> str2 = new TreeMap<emp, String>();
str2.put(new emp(1001, "张三", 10000),"aaa");
str2.put(new emp(1002, "王五", 60000),"bbb");
str2.put(new emp(1003, "里斯", 20000),"ccc");
str2.put(new emp(1004, "赵六", 20000),"ddd");
for(emp i:str2.keySet())
System.out.println(i+"---"+str2.get(i));
class emp implements Comparable<emp>
int id;
String name;
int salary;
public emp(int id, String name, int salary)
super();
this.id = id;
this.name = name;
this.salary = salary;
public String toString()
return ("id:"+id+",name:"+name+",salary:"+salary);
public int compareTo(emp 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 ;
以上是关于TreeMap和Comparable接口的主要内容,如果未能解决你的问题,请参考以下文章
Java中Comparable和Comparator接口区别分析
面试----java基础集合---------------------comparable和comparator 的区别
TreeMap和TreeSet在排序时如何比较元素?Collections工具类中的sort()方法如何比较元素?
TreeMap和TreeSet在排序时如何比较元素,Collections工具类中的sort()方法如何比较元素