日期:2014-05-20 浏览次数:20858 次
package com.test; import java.util.Comparator; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; public class TreeMapSort { public static void main(String[] args){ TreeMap<Entry<String,String>,String> tree = new TreeMap<Entry<String,String>,String>(new Comparator<Entry<String,String>>(){ /** * 实现的compare方法,比较利用了String的compareTo, * 如果V之间比较返回0,则比较K的值,如果两个都相等的时候, * 在插入的时候视为重复的key值,将只会插入一个 */ @Override public int compare(Entry<String, String> o1, Entry<String, String> o2) { int result = o1.getValue().compareTo(o2.getValue()); if(result != 0){ return result; }else { return o1.getKey().compareTo(o2.getValue()); } } }){ /** * */ private static final long serialVersionUID = 1L; /** * 重写的toString方法,方便查看结果! */ @Override public String toString(){ return super.toString().replaceAll("[{}]", "") .replaceAll(",", "\n").replaceAll("=", "\t"); } }; //插入测试数据!------------------------------------------------------- Map<String,String> map = new HashMap<String,String>(); for(int i=1;i<=10;i++){ map.put("key"+i, "value"+ i%3); } int count=1; for(Entry<String,String> e : map.entrySet()){ tree.put(e, "a"+count); count++; } //测试数据插入完成----------------------------------------------------- System.out.println(tree); } }