问题:不明白在map中如何将每一个map在不区分大小写的情况下排序
解决方案:试着用treemap,和hashmap来搞,但是发现所排列的数据,依旧是区分大小写排序,sort(),这个方法不能与treemap同时公用,
hashmap是一个无序的所以讲他放在list中显然是不可行的,而treemap是有序的,但是是区分大小写的,既然是比较,那么我此时想到一个方法,
就是java中的
compare这个接口。我们重写这个接口,在这个比较的时候,我们转换大小写,就达到了不区分大小写排列的目的,据说可以用正则表达式
也是可行的,但是不会!一下就是用
compare这个接口实现的不区分大小写!
最终的解决:
public static void main(String[] args) {
Map<String, String> map = new TreeMap<String, String>();
map.put("参数一","数值");
//这里将map.entrySet()转换成list
List<Map.Entry<String,String>> list = new ArrayList<Map.Entry<String,String>>(map.entrySet());
//然后通过比较器来实现排序
Collections.sort(list,new Comparator<Map.Entry<String,String>>() {
//升序排序
public int compare(Entry<String, String> o1,
Entry<String, String> o2) {
return o1.getKey().toLowerCase().compareTo(o2.getKey().toLowerCase());
}
});
for(Map.Entry<String,String> mapping:list){
System.out.println(mapping.getKey());
}
}
只需要重写compare这个方法即可