码迷,mamicode.com
首页 > 其他好文 > 详细

TreeMap添加元素时异常 Comparable异常

时间:2018-01-20 19:47:44      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:stat   hashmap   util   自己   ide   return   hash   tag   tree   

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异常

标签:stat   hashmap   util   自己   ide   return   hash   tag   tree   

原文地址:https://www.cnblogs.com/qingyundian/p/8321627.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!