- [[Map]]集合中的一种实现 - 底层结构 - JDK1.7前:[[数组]]+ [[链表]] - JDK1.7后:[[数组]]+[[链表]]+ [[红黑二叉树]] - 用法 - ```java HashMap datas = new HashMap<>(); ``` - [[put]] - [[putAll]] - [[get]] - [[getOrDefault]] - 允许放[[null]]键null值 - [[replace]] - [[remove]] - [[clear]] - [[keySet]] - [[values]] - [[去重]] - 依靠Hashcode和equals - HashSet的底层是HashMap的key - Keys要重写equals和hashCode - 遍历 - [[forEach]] - ```java datas.forEach(new BiConsumer() { @Override public void accept(Girl key, Boy value) { System.out.println("key=" + key + ",value" + value); } }); ``` - 获得键的集合 - ```java Set keys = datas.keySet(); for (Girl e : keys) { System.out.println("key=" + e + ",value=" + datas.get(e)); } ``` - [[entrySet]] - ```java Set> entries = datas.entrySet(); for (Map.Entry e : entries { System.out.println("key=" + e.getKey() + ",value=" + e.getValue()); } ```