java 关于字典排序的方法

如对参数顺序有着要可以采用:字典排序

下面提供两种字典排序的方法:

1、 针对list 集合进行字典排序

private static void SortList() {
		ArrayList arl = new ArrayList();
		arl.add("D");
		arl.add("a");
		arl.add("E"); 
		arl.add("A");
		arl.add("张三");

		Collections.sort(arl, new Comparator() {
		    public int compare(String o1, String o2) {
		        try {
		            // 取得比较对象的汉字编码,并将其转换成字符串
		            String s1 = new String(o1.toString().getBytes("GB2312"), "ISO-8859-1");
		            String s2 = new String(o2.toString().getBytes("GB2312"), "ISO-8859-1");
		            // 运用String类的 compareTo()方法对两对象进行比较
		            return s1.compareTo(s2);
		        } catch (Exception e) {
		            e.printStackTrace();
		        }
		        return 0;
		    }
		});// 根据元素的自然顺序 对指定列表按升序进行排序。

		for (int i = 0; i < arl.size(); i++) {
		    System.out.println(arl.get(i));
		}
	}

输出的结果:

A
D
E
a
张三

顺序为:大写字母>小写字母>中文

如果有特殊符号的话  英文符号(如: “#”,“.”)>大写字母>小写字母>中文符号(如:“、”)>中文


第二种是对map对象的key排序

	    TreeMap treeMap = new TreeMap();
        treeMap.put("s", 2);
        treeMap.put("w", 5);
        treeMap.put("d", 1);
        treeMap.put("f", 0); 
        treeMap.put("还是", 9);
        treeMap.put("A", 22);
        treeMap.put("a", 25);
        for (Map.Entry entry : treeMap.entrySet()) {
            System.out.println(entry.getKey() + " - " + entry.getValue());
        }
        System.out.println("----------------------*------------------------------");

这里TreeMap默认按照key递增排序

A - 22
a - 25
d - 1
f - 0
s - 2
w - 5
还是 - 9

如果有想对map的value值排序的请参考:http://blog.csdn.net/gpwner/article/details/73012494


你可能感兴趣的:(java基础)