讓學生按照姓名或者年齡進行排序
阿新 • • 發佈:2018-12-25
package cn.itcast.api.a.map.subclass; import java.util.*; import cn.itcast.api.c.comparator.ComparatorByName; import cn.itcast.domain.Student; public class TreeMapTest { public static void main(String[] args) { // TODO Auto-generated method stub /*練習二 * 學生物件(姓名年齡)的都有自己的對應關係 * 將學生物件及其對應關係儲存到map集合中 * 注意:同姓名同年齡視為重複的鍵需要重寫hashCode和equals * * 1.按照學生的年齡進行排序 * 對鍵進行排序用TreeMap(Comparator Comparable) * * 2.讓學生按照姓名排序 * 建立一個比較器(不止自己用) * 建立一個內部類 (只有自己用) * **/ // 建立TreeMap集合物件 Map<Student , String> map = new TreeMap<Student , String>(new ComparatorByName() {//傳進一個姓名的比較器 }); // 新增元素 map.put(new Student("lisi",28 ), "上海"); map.put(new Student("sddsaca",23 ), "北京"); map.put(new Student("fsd",26 ), "南京"); map.put(new Student("asdsi",24 ), "武漢"); // 第二階段 map.put(new Student("asdsi",24 ), "濟南"); // 取出所有的元素 entryset for(Map.Entry<Student, String> me: map.entrySet()){ Student key = me.getKey(); String value = me.getValue(); System.out.println(key+"----"+value);/*Student cannot be cast to java.lang.Comparable遇到這種錯誤時需要讓學生實現Comparable介面*/ } } }