Java进阶第一天

发布时间:2024年01月14日

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,迭代器
      • 代码
        //key放入单列集合
        Set<String> keys = map.keySet();
        //增强For遍历
        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();
        //增强For遍历
        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
文章来源:https://blog.csdn.net/JUIU9527/article/details/135584518
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。