package cn.java.mhz;
import java.util.Map;
import java.util.TreeMap;
/**
* 红黑二叉树实现了TreeMap
* @author asus
*
*/
public class TreeMapTest {
public static void main(String[] args)
{
Map<Integer,String> treemap1 =new <Integer,String>TreeMap();
treemap1.put(20,"aa");
treemap1.put(3,"bb");
treemap1.put(-1,"cc");
//treemap1会根据key值自动进行排序
System.out.println(treemap1.toString());
//按照关键字key来进行增强for循环的遍历
for(Integer m:treemap1.keySet())
{
System.out.println(treemap1.get(m));
}
//自定义排序方法 需要重写compareTo方法
Map<fx,String> treemap2 = new <fx,String> TreeMap();
fx mhz = new fx(10,"mhz",50000);
fx wzl = new fx(21,"wzl",70000);
fx yxk = new fx(22,"yxk",60123);
fx yxk1 =new fx(23,"yxk1",60123);
treemap2.put(mhz, "not bad");
treemap2.put(wzl,"good");
treemap2.put(yxk,"ok");
treemap2.put(yxk1, "not bad too");
for(fx m :treemap2.keySet())
{
System.out.println(m.toString()+" --- "+treemap2.get(m).toString());
}
}
}
//自定义的类排序
class fx implements Comparable<fx>{
int id;
String name;
double salary;
//构造器实现
public fx(int id, String name, double salary) {
super();
this.id = id;
this.name = name;
this.salary = salary;
}
@Override
//首先根据salary进行排序,其次按照id进行排序
public int compareTo(fx o)
{
if(this.salary>o.salary) return 1;
else if(this.salary<o.salary) return -1;
else if(this.salary==o.salary) {
if(this.id>o.id) return 1;
else if(this.id<o.id) return -1;
else if(this.id==o.id) return 0;
}
return -1;
}
@Override
public String toString()
{
return "id:"+id+" name:"+name+" salary:"+salary;
}
}