主要内容
- Map集合
1 Map集合
1.1 特点:
- Map集合是双列集合
- K,V可以使用任意引用类型
- key不能重复
- 通过一个key只能找到唯一的一个value
1.2 Map常用子类
- HashMap implements Map 无序
- LinkedHashMap extends HashMap 有序
1.3 Map接口常用方法
public V put(K key, V value) : 把指定的键与指定的值添加到Map集合中。 public V remove(Object key) : 把指定的键所对应的键值对元素 在Map集合中删除,返回被删除元素的值。 public V get(Object key) 根据指定的键,在Map集合中获取对应的值。 public Set<K> keySet() : 获取Map集合中所有的键,存储到Set集合中。 public Set<Map.Entry<K,V>> entrySet() : 获取到Map集合中所有的键值对对象的集合(Set集合)。 containsKey(Object key):是否包含
1.4 Map集合遍历键找值方式
1.获取所有键的存储到Set集合
2.遍历该集合
3.根据key获取对应的value值
1.5 Entry键值对对象
public Set<Map.Entry<K,V>> entrySet() :
获取到Map集合中所有的键值对对象的集合(Set集合)。
1.6 Map集合遍历键值对方式
1.获取键值对集合对象 Set<Map.Entry<K,V>>
2.遍历该集合对象
3.获取某一个Entry对象,
4.调用getKey和getValue方法获取键和值
1.7 HashMap存储自定义类型键值
- 当给HashMap中存放自定义对象时,如果自定义对象作为key存在,这时要保证对象唯一,必须复写对象的 hashCode和equals方法
- 如果要保证map中存放的key和取出的顺序一致
使用 LinkedHashMap 集合来存放。
1.8 LinkedHashMap
- 链表和哈希表组合的一个数据存储结构
2 补充知识点
2.1 Hashtable集合
安全,效率低,现在几乎不用,
子类Properties依然活跃在历史的舞台
2.2 JDK9对集合添加的优化
直接使用接口.of()
方法
最多存储10个元素
1.只有List Set Map有该方法,对应实现类都没有该方法
2.返回的是固定的集合对象不可改变
3.Set Map来说存储的值不能重复
2.3 Debug追踪
使用方式:
在行号的右边,鼠标左键单击,添加断点(每个方法的第一行,哪里有bug添加到哪里)
右键,选择Debug执行程序
程序就会停留在添加的第一个断点处执行程序:
f8:逐行执行程序
f7:进入到方法中
shift+f8:跳出方法
f9:跳到下一个断点,如果没有下一个断点,那么就结束程序
ctrl+f2:退出debug模式,停止程序
Console:切换到控制台