java的集合list map

来源:互联网 发布:数据库大数据量处理 编辑:程序博客网 时间:2024/04/27 22:04


对于list map的细节总结一下:


map排序的三种方法:

public class TestMapSort {public static void main(String[] args) {/*** * map 排序 * 直接用treemap实例化map 自动对key进行排序 */test0();/*** * map 排序 * 使用treemap对map实例化,并且在构造函数中传入一个Comparator, 根据key进行排序 */test1();/*** * map排序 * 根据value进行排序 */test2();}public static void test0() {Map<String, Object> map = initdata2();printMap(map);}public static void test1() {Map<String, Object> map = initdata();Map<String, Object> map2 = sortByKey(map);printMap(map2);}public static void test2() {Map<String, Object> map = initdata3();Map<String, Object> map2 = sortByValue(map);printMap(map2);}public static Map<String, Object> initdata() {Map<String, Object> map = new HashMap<String, Object>();map.put("key1", 1);map.put("key2", 2);map.put("key5", 5);map.put("key4", 4);map.put("key3", 3);return map;}public static Map<String, Object> initdata2() {Map<String, Object> map = new TreeMap<String, Object>();map.put("key1", 1);map.put("key2", 2);map.put("key5", 5);map.put("key4", 4);map.put("key3", 3);return map;}public static Map<String, Object> initdata3() {Map<String, Object> map = new HashMap<String, Object>();map.put("key1", 1);map.put("key2", 2);map.put("key5", 5);map.put("key4", 4);map.put("key3", 3);return map;}public static Map<String, Object> sortByKey(Map<String, Object> map) {if (map == null || map.isEmpty()) {return null;}Map<String, Object> map3 = new TreeMap<String, Object>(new MapKeyComparator());map3.putAll(map);return map3;}public static Map<String, Object> sortByValue(Map<String, Object> map) {if (map.isEmpty() || map == null) {return null;}List<Map.Entry<String, Object>> listOBject = new ArrayList<Map.Entry<String, Object>>(map.entrySet());Map<String, Object> sortedMap = new LinkedHashMap<String, Object>();Collections.sort(listOBject, new MapValueComparator());        Iterator<Map.Entry<String, Object>> iter = listOBject.iterator();          Map.Entry<String, Object> tmpEntry = null;          while (iter.hasNext()) {              tmpEntry = iter.next();              sortedMap.put(tmpEntry.getKey(), tmpEntry.getValue());          }          return sortedMap;}public static void printMap(Map<String, Object> map) {System.out.println("-----------begin------------------");Iterator<String> iterator = map.keySet().iterator();while (iterator.hasNext()) {String key = iterator.next();// 拿到key的值进行遍历System.out.println("-----key的值:----" + key + "--value:-----" + map.get(key));}System.out.println("-----------end------------------");}/* map通过key进行比较器 */public static class MapKeyComparator implements Comparator<String> {public int compare(String o1, String o2) {// TODO Auto-generated method stubreturn o2.compareTo(o1); // 顺序还是逆序只需o1 o2调换位置就行}}public static class MapValueComparator implements Comparator<Map.Entry<String, Object>>{public int compare(Entry<String, Object> o1, Entry<String, Object> o2) {// TODO Auto-generated method stubint o11 = (Integer)o1.getValue();int o22 = (Integer)o2.getValue();if(o11 < o22){return 1;}else if(o11 == o22){return 0;}else{return -1;}//return (((Integer)o2.getValue())-((Integer)o1.getValue()));  这个方法也可以}}}

对于list的常用几个方法:

参考:http://www.cnblogs.com/lzq198754/p/5780220.html

本文不在陈述。

原创粉丝点击