1. 程式人生 > >讓學生按照姓名或者年齡進行排序

讓學生按照姓名或者年齡進行排序

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介面*/
			}
	}

}