1. 程式人生 > >TreeMap添加元素時異常 Comparable異常

TreeMap添加元素時異常 Comparable異常

pan entryset ble 新西蘭 import println set方法 over 人員

package com.swift;

import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;

public class Map_keySet_entrySet {

    public static void main(String[] args) {
        /*
         * TreeMap 集合存儲自定義對象,並使用 2 中方式遍歷獲取
         
*/ Map<Person,String> hm = new HashMap<Person, String>(); hm.put(new Person("lisi",18), "加拿大"); hm.put(new Person("zhangsa",17), "澳大利亞"); hm.put(new Person("zhangsa",17), "澳大利亞"); hm.put(new Person("wangwu",20), "新加坡"); hm.put(new Person("zhaoliu",19), "新西蘭"); hm.put(
new Person("zhaoliu",19), "新西蘭"); hm.put(new Person("lisa",22), "迪拜"); //使用TreeMap無法排序比較是會出現Comparable異常錯誤 這時需要自己弄比較器 Map<Person,String> tree = new TreeMap<Person, String>(new Comparator<Person>() { @Override public int compare(Person arg0, Person arg1) {
int num=arg0.getAge()-arg1.getAge(); return num==0?arg0.getName().compareTo(arg1.getName()):num; } }); tree.put(new Person("lisisi",18), "china"); //keySet方法一 Set<Person> set=hm.keySet(); for(Person per:set) { System.out.println("人員:"+per.toString()+"來自:"+hm.get(per)); } Set<Person> set1=tree.keySet(); for(Person per:set1) { System.out.println("人員:"+per.toString()+"來自:"+tree.get(per)); } //entrySet方法二 for(Map.Entry<Person, String> en:hm.entrySet()) { System.out.println(); System.out.println("人員:"+en.getKey().toString()+"來自:"+en.getValue()); } } }

TreeMap添加元素時異常 Comparable異常