Map集合基础知识

Map
一、概述
Map和Collection没有直接关系
Collection:看着是“单列”集合
List
ArrayList
LinkedList
Vector
Set
HashSet
TreeSet
Map:将键映射到值的对象。看着是“双列”集合

二、基本使用
Map:不允许键重复,但值可以重复,如果键重复,值会覆盖
HashMap :效率高,线程不安全
允许键和值为null,前提是key和value的泛型能兼容
添加添加元素顺序和遍历顺序不一定一致
执行key:
情况1:先计算hashcode,如果hashcode不同,元素则直接放入集合中哈希表
情况2:先计算hashcode,如果hashcode相同,元素则会调用equals来进行比较,如果equals相同则去除重复,如果equals不同,则放入同一个“桶”中

	如果键重复(hashcode如果一致),value新的会替代旧的
TreeMap
	允许值为null
	遍历顺序是根据key的比较器自然排序
	执行key:
	(1)如果元素已经具备比较功能,例如String,int,可以直接添加
	(2)如果元素没有具备比较功能,例如自定义Person类,实现Comparable接口,重写compareTo方法
	(3)当重写比较方法时,如果返回值为零,则认为是重复元素
		去除重复?
			跟hashcode和equals无关,跟比较的方法返回值有关。
	(4)如果元素没有具备比较功能,也可以实现比较器Comparator,重写Comparator方法,并且把比较器传递给TreeSet----推荐
	(5)当实现Comparable接口,也实现比较器Comparator,优先调用比较器Comparator
HashTable:效率低,线程安全
	键值都不允许为null

常用方法
添加元素
put
putAll
获取元素
get:根据key来获取value
删除元素
clear:清除所有
remove:清除某个
判断
containsKey(Object key) 判断key
containsValue(Object value) 判断value
isEmpty() 判断map是否为空
遍历
keySet() 所有key,
HashMap中的key存放是hashcode
values() 所有value
entrySet() 所有映射(所有key和value),返回Map中的内部类,Map.Entry<k,v>,包含key和value

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值