浅谈java中的TreeMap 排序与TreeSet 排序
TreeMap:
packagecom; importjava.util.Comparator; importjava.util.TreeMap; publicclassTest5{ /** *@paramargs */ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub TreeMap<String,String>tree=newTreeMap<String,String>( newComparator<Object>(){ @Override publicintcompare(Objecto1,Objecto2){ //TODOAuto-generatedmethodstub if(o1==null||o2==null){ return0; } returno1.toString().compareTo(o2.toString()); } } ); tree.put("k","1"); tree.put("ba","2"); tree.put("z","3"); tree.put("d","4"); tree.put("e","5"); tree.put("an","6"); tree.put("c","7"); for(Stringstr:tree.keySet()){ System.out.println(str); } } }
经测试默认是按照KEY进行排序的。
但是可以写对象比较器,进行自定义排序。
TreeSet:自定义倒序排序,默认按照正序排序,1,2,3,4,5,6
packagecom; importjava.util.Comparator; importjava.util.TreeSet; publicclassTest6{ /** *@paramargs */ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub TreeSet<Object>tree=newTreeSet<Object>(newComparator<Object>(){ @Override publicintcompare(Objecto1,Objecto2){ //TODOAuto-generatedmethodstub if(o1==null||o2==null){ return0; } if(Integer.parseInt(o1.toString())>Integer.parseInt(o2.toString())){ return-1; }elseif(Integer.parseInt(o1.toString())<Integer.parseInt(o2.toString())){ return1; }else{ return0; } } }); tree.add(4); tree.add(5); tree.add(6); tree.add(1); tree.add(2); tree.add(3); for(Objecto:tree){ System.out.println(o); } } }
以上这篇浅谈java中的TreeMap排序与TreeSet排序就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。