Map集合简述

Map 存放键值对(和python字典一样)

请添加图片描述

HashMap
		1. 采用 hash算法
		2. 初始化容量 16
		3. 最大容量 2^31
		4.  装载因子 0.75
		5. key和value都可以为null,但key只能有一个null
TreeMap
		1.key和value都可以为null,但key只能有一个null
		2.存储的数据需要实现 comparable 接口 或者 new TreeMap时指定排序规则
		3.存进去的元素会自动排序
Hashtable
	1.HashTable的初始容量是11,扩容策略是翻倍加1,即当前容量 capacity * 2 + 1。
	2.key和value不能为null

map遍历

		1.调用keySet方法返回一个 key set集合,拿到键然后 迭代 调用get方法
		2.调用forEach方法   map.forEach((k,v)-> System.out.println(k+"=="+v));
		3.调用entrySet方法返回一个set,迭代里面的值
			Set<Map.Entry<String, Object>> en = map.entrySet();
			for (Map.Entry<String, Object> s : en) {
				System.out.println(s);
			}

map添加查找实现原理

知识点
1.  ArrayList 和 LinkedList 的区别
		1)ArrayList 底层基于数组存储,而LinkedList底层基于双向链表存储
		2)ArrayList 查询效率高,增删效率不高,LinkedList 增删效率高,查询效率不高

2. ArrayList 和 Vector 的区别
		1)Vector 是线程安全的,效率不如ArrayList
		2)当Vector或ArrayList中的元素超过它的初始大小时,
			Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。
		
3. HashSet 是如何 实现 值的去重的 
		1)首先是重写的hashCode()。如果在该方法中,两个对象通过
		重写后计算出来的哈希码是不同的,那么就直接判定这两个对象不
		是同一个对象,即可以同时存放进HashSet集合。
		2)当两个对象通过重写后计算出来的哈希码是相同的,那么调
		用重写后的equals方法。如果返回false,说明这两个对象不同,
		即可以同时存放进HashSet集合,反之则不可以。

4. TreeSet 在使用的时候,需要注意什么事项
		1)存储的数据需要实现 comparable 接口 或者 new TreeMap时指定排序规则
5. HashMap 和 Hashtable 有什么区别 
		1)Hashtable 是线程安全的,效率比较低
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值