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