15.Java语言Map集合总结和JDK的中对集合添加的优化以及debug调试

Map集合

1.Map集合的特点:

1).内部采用键值对的方式存储,通过键获取对应的值

2).键值是唯一的,可以接收一次null

3).键和值可以是任何对象

4).由于键值得唯一、不重复,需要重写equals()和hashCode()方法

2.Map集合的子类:

              |--HashMap(子类):键是“哈希表”结构:

              |--LinkedHashMap(子类):键是“链表、哈希表”结构;

3.Map常用方法:

       a).添加、修改

                     public V put(K key, V value)   把指定的键与指定的值添加到Map集合中。

                     如果键值已经存在,那么替换该键值对应的值,返回替换掉的值

       b).删除

public V remove(Object key) 把指定的键所对应的键值对元素 在Map集合中删除,返回被删除元素的值

       c).查询

                     public V get(Object key) 根据指定的键,在Map集合中获取对应的值

                     public int size()   获取键值对的数量

4.遍历

       Map本身没有遍历的方法,都是间接遍历

       a). 获取Map集合中所有的键,存储到Set集合中。

                     public Set<K> keySet()

键找值,该方法把Map中所有的键取出,返回一个存放所有键的Set集合,然后通过键值获取Map中的对应值

示例:

15.Java语言Map集合总结和JDK的中对集合添加的优化以及debug调试

       b). 获取到Map集合中所有的键值对对象的集合(Set集合)。

public Set<Map.Entry<K,V>> entrySet()当我们向Map中存储键值对时,其实Map内部会将这个键值对封装到一个Entry对象中。该方法将所有的Entry对象封装到一个Set中,并返回

然Entry表示了一对键和值,那么也同样提供了获取对应键和对应值得方法:

public K getKey() :获取Entry对象中的键。

public V getValue() :获取Entry对象中的值。

                     示例:

                                           15.Java语言Map集合总结和JDK的中对集合添加的优化以及debug调试

5.HashMap存储自定义类型

                     当给HashMap中存放自定义对象时,如果自定义对象作为key存在,这时要保证对象唯一,必须复写对象的hashCode和equals方法

6.LinkedHashMap

                     它是Map的特例,有序的哈希表,其他相同。如果想要取出和存入顺序一样用这个方式

7.JDK9对集合添加的优化

                     向集合中添加元素,可使用of()方法,一次添加多个

15.Java语言Map集合总结和JDK的中对集合添加的优化以及debug调试

注意:

1.of()方法只是Map,List,Set这三个接口的静态方法,其父类接口和子类实现并没

有这类方法,比如HashSet,ArrayList、

2.返回的集合是不可变的

8.debug调试

       1.F8 : 单步执行,遇到方法调用,不进入方法体;

       2.F9 : 结束单步执行;继续执行后面的代码,如果后面代码没有断点,直接将后续所有

代码执行完毕;如果后面有断点,将在下一个断点处暂停;

       3.F7 : 单步执行,遇到方法调用,进入到方法体;