Java进阶第一天

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
  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我不吃牛肉!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值