集合9——TreeMap

TreeMap<Character,Integer> tree=new TreeMap();
  tree.put('a', 97);
  tree.put('b', 98);
  tree.put('c', 99);
  System.out.println(tree);

在这里插入图片描述
TreeMap要注意的事项:
1.往TreeMap添加元素时,如果元素的键具备自然顺序的特点,那么就会按顺序存储
2.如果元素的键不具备自然顺序的特点,那么键所属的类必须实现comparable接口,把键的比较规则定义在compareTo方法上
3.如果元素的键不具备自然顺序的特点,而且键所属的类也没有实现comparable接口,那么久必须在创建TreeMap对象时传入比较器

方式一:实现接口

class Emp implements Comparable{
 int id;
 int salary;
 public Emp(int id,int salary){
  this.id=id;
  this.salary=salary;
 }
 @Override
 public int compareTo(Object o) {
  // TODO Auto-generated method stub
  Emp e=(Emp)o;
  return this.salary-e.salary;
 }
 @Override
 public String toString() {
  // TODO Auto-generated method stub
  return "编号:"+this.id+" 工资:"+this.salary;
 } 
}
public class Test5 {
 public static void main(String[] args) {  
  TreeMap<Emp,String> map=new TreeMap();
  map.put(new Emp(1, 100),"001");
  map.put(new Emp(2, 50), "002");
  map.put(new Emp(3, 400), "003");
  map.put(new Emp(4, 300),"004");
  System.out.println(map);  
 }
}

在这里插入图片描述
方式二:自定义一个比较器

class MyComparator implements Comparator<Emp>{
 @Override
 public int compare(Emp o1, Emp o2) {
  // TODO Auto-generated method stub
  return o1.salary-o2.salary;
 } 
}
public class Test6 {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  MyComparator myComparator=new MyComparator();
  TreeMap<Emp, String> map=new TreeMap(myComparator);
  map.put(new Emp(1, 100),"001");
  map.put(new Emp(2, 50), "002");
  map.put(new Emp(3, 400), "003");
  map.put(new Emp(4, 300),"004");
  System.out.println(map);
 }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值