首页 > 编程 > Java > 正文

浅谈java中的TreeMap 排序与TreeSet 排序

2019-11-26 13:27:52
字体:
来源:转载
供稿:网友

TreeMap:

package com;import java.util.Comparator;import java.util.TreeMap;public class Test5 {	/**	 * @param args	 */	public static void main(String[] args) {		// TODO Auto-generated method stub		TreeMap<String, String> tree = new TreeMap<String, String>(				new Comparator<Object>() {					@Override					public int compare(Object o1, Object o2) {						// TODO Auto-generated method stub						if(o1 == null || o2 == null){							return 0;						}												return o1.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(String str : tree.keySet()){			System.out.println(str);		}	}}

经测试默认是按照 KEY 进行排序的。

但是可以写对象比较器,进行自定义排序。

TreeSet : 自定义倒序排序,默认按照正序排序,1,2,3,4,5,6

package com;import java.util.Comparator;import java.util.TreeSet;public class Test6 {	/**	 * @param args	 */	public static void main(String[] args) {		// TODO Auto-generated method stub		TreeSet<Object> tree = new TreeSet<Object>(new Comparator<Object>() {			@Override			public int compare(Object o1, Object o2) {				// TODO Auto-generated method stub				if(o1 == null || o2 == null){					return 0;				}								if(Integer.parseInt(o1.toString()) > Integer.parseInt(o2.toString())){					return -1;				}else if(Integer.parseInt(o1.toString()) < Integer.parseInt(o2.toString())){					return 1;				}else{					return 0;				}			}		});				tree.add(4);		tree.add(5);		tree.add(6);		tree.add(1);		tree.add(2);		tree.add(3);		for(Object o : tree){			System.out.println(o);		}	}}

以上这篇浅谈java中的TreeMap 排序与TreeSet 排序就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表