Java进阶第一天
双列集合
特点
双列集合一次需要存一对数据,分别是键和值(键值对) 键不能重复,值可以重复 键和值一一对应
Map的常见API
Map是双列集合的顶层接口 ,它的功能是全部双列集合都可以继承使用的
方法名称(V是值,K是键 说明 V put(K key,V value) 添加元素 V remove(Object key) 根据键删除值(返回值:键对应的值 void clear() 移除所有键值对元素 boolean containsKey(Object key) 判断集合是否包含指定的键 boolean containsValue(Object value) 判断集合是否包含指定的值 boolean isEmpty() 判断集合是否为空 int size() 集合的长度,也就是集合中键值对的个数
注意: put方法,如果键不存在,那就直接添加值到map集合中,方法返回null 如果键存在,那么会把原有的键值对对象覆盖,会把被覆盖的值进行返回 代码:
Map < String , Integer > map = new HashMap < > ( ) ; map. put ( "小王" , 19 ) ; map. put ( "小李" , 17 ) ; System . out. println ( map) ; Integer value1 = map. put ( "小王" , 20 ) ; System . out. println ( value1) ; System . out. println ( map) ;
{小李=17, 小王=19}
19
{小李=17, 小王=20}
Map集合的遍历方式
方法一: 将双列集合中所有的键放入到单列结合中,然后通过遍历单列结合中的键获取相应的值 需要的方法: keySet() 可以将所有的键放入单列集合中 get(key) 可以获取key对应的值 遍历的方法: 增强for,迭代器 代码
Set < String > keys = map. keySet ( ) ; System . out. println ( "--------增强for--------" ) ; for ( String key : keys) { Integer value = map. get ( key) ; System . out. println ( key+ " = " + value) ; } System . out. println ( "--------迭代器--------" ) ; Iterator < String > iterator = keys. iterator ( ) ; while ( iterator. hasNext ( ) ) { String key = iterator. next ( ) ; Integer value = map. get ( key) ; System . out. println ( key+ " = " + value) ; }
--------增强for--------
1 = 1
2 = 1
3 = 1
小李 = 17
小王 = 19
--------迭代器--------
1 = 1
2 = 1
3 = 1
小李 = 17
小王 = 19
方法2: 将双列集合中的所有键值对放入到一个单列集合中,然后遍历单列集合获取某个键值对元素,然后获取对用的键和值 需要的方法: entrySet() 所有键值对放入单列集合中 getKey() 获取键 getValue() 获取值 循环方法: for增强,迭代器 代码:
Set < Map. Entry < String , Integer > > entries = map. entrySet ( ) ; System . out. println ( "--------增强for--------" ) ; for ( Map. Entry < String , Integer > entry : entries) { String key = entry. getKey ( ) ; Integer value = entry. getValue ( ) ; System . out. println ( key+ " = " + value) ; } System . out. println ( "--------迭代器--------" ) ; Iterator < Map. Entry < String , Integer > > iterator = entries. iterator ( ) ; while ( iterator. hasNext ( ) ) { Map. Entry < String , Integer > next = iterator. next ( ) ; String key = next. getKey ( ) ; Integer value = next. getValue ( ) ; System . out. println ( key+ " = " + value) ; }
--------增强for--------
1 = 1
2 = 1
3 = 1
小李 = 17
小王 = 19
--------迭代器--------
1 = 1
2 = 1
3 = 1
小李 = 17
小王 = 19