Map集合

一,特点

  1. 是双列结合,一个元素包含(key,value),一一对应。
  2. key和value的类型可以相同也可以不同。
  3. key的值不允许重复,value可以重复。
  4. hashMap存储自定义类型键值,必须重写hashCode和equals方法 ,保证key值唯一。

二,常用子类

  1. HashMap

(1)实现了Map接口,查询快,底层哈希表。

(2)无序,存取顺序可能不一致。

  1. LinkedHashMap

(1)有序,存取顺序一致

三,常用方法

  1. put(key,value); //key存在,返回被替换的元素的value。不存在则返回null。
  2. get(key); //返回键所映射的值
  3. remove(key); //通过key删除元素,返回 被删除的值或者null。
  4. addAll(); //添加另一个集合里的元素。
  5. containsKey(); //返回boolean
  6. containsValue(); //返回boolean
  7. values() //获取集合全部的value值
 Map<String,Integer> hashMap = new HashMap<>();
        hashMap.put("huhu", 2);
        hashMap.put("koko",3 );
        int huhu = hashMap.remove("huhu");
        int haha = hashMap.remove("haha");  //空指针异常,返回值null不能赋值给int,Integer可以
      //  System.out.println(haha);  
        System.out.println(huhu);  //2
        System.out.println(hashMap);  //3

四,遍历Map集合

keySet()方法取出所有元素的key防盗一个集合中。

  1. 增强for遍历
Set<String> strings = hashMap.keySet();  //所有key保存到strings集合中
        for (String keys: strings) {
            Integer num = hashMap.get(keys); //get()方法返回value
            System.out.println(num);
        }
  1. Iterator遍历
Set<String> strings = hashMap.keySet();
        Iterator<String> it = strings.iterator(); //实现类对象
        while (it.hasNext()){
            String s = it.next();
            Integer num = hashMap.get(s);
            System.out.println(num);
        }
  1. 获取键值对对象并遍历
 Set<Map.Entry<String, Integer>> en = map.entrySet(); //返回键值对对象
    for (Map.Entry<String, Integer> str : en) {
        System.out.println(str.getKey() + "==" + str.getValue());
    }
  1. foreach遍历
  map.forEach((a, i1) -> System.out.println(a + "=" + i1));
map.forEach(new BiConsumer<>() {
            @Override
            public void accept(String t, Integer integer) {
                System.out.println(t + "=" + integer);
            }
        });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值