Map集合

Map集合


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。

一、Map是什么?

Map用于保存具有映射关系的数据,Map集合里保存着两组值,一组用于保存Map的ley(唯一),另一组保存着Map的value(可重复)

二、概念

map集合的作用
和查字典类似,通过key找到对应的value,通过页数找到对应的信息。用学生类来说,key相当于学号,value对应name,age,sex等信息。用这种对应关系方便查找。

Map和Set的关系

可以说关系是很密切了,虽然Map中存放的时键值对,Set中存放的是单个对象,但如果把value看做key的附庸,key在哪里,value就在哪里,这样就可以像对待Set一样来对待Map了。事实上,Map提供了一个Entry内部类来封装key-value对,再计算Entry存储时则只考虑Entry封装的key。

如果把Map集合里的所有value放在一起来看,它们又类似于一个List,元素可以重复,每个元素可以根据索引来找,只是Map中的索引不再是整数值,而是以另一个对象作为索引。

代码如下(示例):

Map<String,String> map=new HashMap<String,String>();
		map.put("a", "1");
		map.put("b", "2");
		map.put("c", "3");
		map.put("d", "4");
		Set<String> keySet = map.keySet();
		System.out.println(map.size());
		System.out.println("-----------------");
		System.out.println(map.containsKey("a"));
		System.out.println("-----------------");
		System.out.println(map.containsValue("4"));
		System.out.println("-----------------");
		System.out.println(map.isEmpty());
		System.out.println("-----------------");
		System.out.println(map.get("b"));
		System.out.println("-----------------");
		System.out.println(map.values());
		System.out.println("-----------------");
		System.out.println(map.keySet());
		System.out.println("-----------------");
		System.out.println(map.remove("a"));
		

2.方法

Map集合的方法:

void clear():删除该Map对象中所有键值对;

boolean containsKey(Object key):查询Map中是否包含指定的key值;

boolean containsValue(Object value):查询Map中是否包含一个或多个value;

Set entrySet():返回map中包含的键值对所组成的Set集合,每个集合都是Map.Entry对象。

Object get():返回指定key对应的value,如果不包含key则返回null;

boolean isEmpty():查询该Map是否为空;

Set keySet():返回Map中所有key组成的集合;

Collection values():返回该Map里所有value组成的Collection。

代码如下(示例):

HashMap<String, Integer> hm = new HashMap<>();

        //放入元素
        hm.put("Harry",23);
        hm.put("Jenny",24);
        hm.put("XiaoLi",20);

        System.out.println(hm);//{XiaoLi=20, Harry=23, Jenny=24}
        System.out.println(hm.keySet());//[XiaoLi, Harry, Jenny]
        System.out.println(hm.values());//[20, 23, 24]

        Set<Map.Entry<String, Integer>> entries = hm.entrySet();

        for (Map.Entry<String, Integer> entry : entries) {
            System.out.println(entry.getKey());
            System.out.println(entry.getValue());
        }

IdentityHashMap实现类

IdentityHashMap和HashMap基本相似,但它在处理两个key相等时比较独特:在IdentityHashMap中,当且仅当两个key严格相等(key1==key2)时,IdentityHashMap才认为两个key相等,而HashMap,只要key1和key2通过equals比较返回true,并且他们的hashCode值相等才认为两个可以相等。

IdentityHashMap提供了与HashMap基本相似的方法,也允许使用null作为key和value。

EnumMap实现类

EnumMap是一个与枚举类一起使用的Map实现。EnumMap中所有key都必须是单个枚举类的枚举值。

EnumMap在内部以数组形式保存,所以这种实现形式非常紧凑、高效。

EnumMap根据key的自然顺序(枚举值在枚举类中定义的顺序)来维护键值对的次序,

EnumMap不允许使用null作为key值,但允许使用null作为value。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值