java hashmap 排序 遍历 嵌套
2017-12-01 15:34
399 查看
一、介绍
对于 HashMap 而言,能快速存、取 Map 的 key-value 对。 HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。继承关系如下:
二、操作
初始化:import java.util.HashMap; HashMap<String, Integer> toIndex = new HashMap<>();
存:
toIndex.put("a", 1);
取:
toIndex.get("a");
是否存在键:
toIndex.containsKey("a");
是否为空:
toIndex.isEmpty();
大小:
toIndex.size();
清空:
toIndex.clear();
删除:
toIndex.remove("a"); toIndex.remove("a", 1);
替换:
toIndex.replace("a"); toIndex.replace("a", 1);
获取键集合:
toIndex.keySet();
获取键值集合:
toIndex.entrySet();
三、排序、遍历、嵌套
降序排序://先转成list形式 List<Map.Entry<String, Integer>> topList = new ArrayList<Map.Entry<String, Integer>>(tops.entrySet()); Collections.sort(topList, new Comparator<Map.Entry<String, Integer>>() { public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { //降序,升序把o1 o2调换位置 return o2.getValue().compareTo(o1.getValue()); } }); // 取权重最高值为预测页面 Map.Entry<String, Integer> first = topList.get(0);
遍历方法:
//取键值对遍历 Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val = entry.getValue(); }
//取键遍历 Map map = new HashMap(); Iterator iter = map.keySet().iterator(); while (iter.hasNext()) { Object key = iter.next(); Object val = map.get(key); }
for (String k : history.keySet()) { tops.put(k, history.get(k)); }
嵌套:
HashMap<String,HashMap<String,Integer>> maps = new HashMap<String,HashMap<String,Integer>>(); 嵌套赋值,有一个注意点,对于嵌套的复制,你需要先把原先key对的的内部map取出来,不然,再次put时会将其覆盖掉。 HashMap<String, Integer> add = maps.get("a"); add.put("1",add.get("1")+templsit.size() ) ; maps.put("a",add);
嵌套遍历:
Iterator iter = maps.keySet().iterator(); while (iter.hasNext()){ Object keyk = iter.next(); HashMap<String, Double> innerMaps = maps.get(keyk); Iterator iterIn = innerMaps.entrySet().iterator(); Double prob = 1d; while(iterIn.hasNext()){ Map.Entry entry = (Map.Entry) iterIn.next(); String webId = (String) entry.getKey(); Double weight = (Double) entry.getValue(); } }
相关文章推荐
- Java中HashMap排序和遍历
- java 遍历嵌套hashmap,即hashmap<k,v>中k类型为hashmap
- java中的几种泛型类——HashSet、HashMap、TreeSet、TreeMap,遍历map,排序,HashTable比较
- java学习3:集合遍历增删报错,at java.util.HashMap$KeyIterator.next
- Java中HashMap遍历的两种方式
- [Java基础要义]HashMap、LinkedHashMap元素遍历机制探讨
- Java的HashMap遍历方法 推荐
- Java HashMap(LinkedHashMap)与Hashset(LinkedHashSet)的排序
- Java中HashMap遍历的两种方式
- Java map 详解 - 用法、遍历、排序、常用API等
- 转]Java中HashMap遍历的两种方式
- java中怎么遍历HashMap
- java中Map集合的常用遍历方法及HashMap的应用实例
- Java中HashMap遍历的两种方式
- freemarker list (长度,遍历,下标,嵌套,排序)
- java中遍历MAP,嵌套map的几种方法
- 《黑马程序员》java笔记->【02】数组的常见操作:遍历,排序,查找
- java HashMap 两种遍历方法
- 转]Java中HashMap遍历的两种方式
- Java HashMap遍历