TreeMap利用Comparator接口排序

时间:2021-09-06 22:12:34
/*TreeMap利用Comparator接口排序
需求:对学生对象的年龄进行升序排序。
因为数据是以键值对形式存在的。
所以要使用可以排序的Map集合。TreeMap
*/

import java.util.*;
class StuNameComparator implements Comparator<Student>//比较器
{

public int compare(Studengt s1,Student s2)
{
int num = s1.getName().compareTo(s2.getName());
if(num==0)
return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));
return num;
}
}
class MapTest2
{

public static void main(String[] args)
{

TreeMap<Studengt,String> tm = new TreeMap<Studengt,String>(new StuNameComparator());

tm.put(hm.put(new Student("lisi1",21),"beijing"));//put(K key, V value)存入
//tm.put(hm.put(new Student("lisi1",21),"tianjin"));
tm.put(hm.put(new Student("lisi2",22),"shanghai"));
tm.put(hm.put(new Student("lisi3",23),"nanjing"));
tm.put(hm.put(new Student("lisi4",24),"wuhan"));

Set<Map.Entry<Student,String>> entrySet = tm.entrySet();//用entrySet()建一个Set
Iterator<Map.Entry<Student,String>> it = entrySet.iterator();
while(it.hasNext())
{
Map.Entry<Student,String> me = it.next();
Student stu = me.getKey();
String addr = me.getValue();
System.out.println(stu+"::"+addr);
}
}
}