Java-Map应用排序实例

/*
 * 需求:对学生对象的年龄进行升序排序。
 *
 * 因为数据是以键值对形式存在的。
 * 所以要使用可以排序的map集合。TreeMap.
 */

class StuNameComparator implements Comparator<Student>{
    public int compare(Student 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;
    }
}

public class MapTest1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        TreeMap<Student,String> tm = new TreeMap<Student,String>(new StuNameComparator());
        
        tm.put(new Student("lisa",21),"beijing");
        tm.put(new Student("lise",27),"shanghai");
        tm.put(new Student("lisc",23),"shenzhen");
        tm.put(new Student("lisb",25),"guangzhou");
        
        Set<Map.Entry<Student, String>> entrySet = tm.entrySet();
        
        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);
        }

    }

}

猜你喜欢

转载自blog.csdn.net/Lydia233/article/details/102655658