Day51.Java集合练习4 -Java常用类#(练习题)、集合、IO

Map存储数据的特点是什么?指明key、value、entry存储数据的特点

双列数据,无序,不可重复,存储key-value对 数据

key:无序的、不可重复的,用Set存放

value:无序的、可重复的,用Collection存放

entry:无序的、不可重复的,用Set存放

描述HashMap的底层实现原理(jdk8)

HashMap map = new HashMap();
在底层建立一个Node[]0长度的数组;
map.put(key,value);
首次添加在底层建立一个长度为16的Node[]数组
通过map所在类的hashCode()方法来计算其添加key的哈希值,再通过某种算法计算出key的Node[]位置
再判断其位置是否有别的元素已经在了,如果没有添加成功
如果有进行判断其与key的哈希值是否相等
    不相等,添加成功;
	相等,在调用key所在类的equals()方法来判断与元素是否相等;
		不相等,添加成功;
		相等,再判断其位置是否还有元素;
			如果有,再进行判断equals()方法,值是否相等,不相等添加成功;
										值相同,再是否还有元素,直到链表位置没有元素,否则添加失败

Map中常用的实现类有哪些,各自有什么特点?

HashMap: Map类的主要实现对象,可以存放null值;线程不安全,效率高

LinkedHashMap: 是HashMap的子类;遍历元素可以按照添加顺序遍历,具有两个指针,一个指向输入的上个元素,一个指向输入的下个元素

Hashtable: Map类中的古老实现对象,不可以存放null值;线程安全,效率低

TreeMap: 保证添加的元素为一个类型;保证按照添加的key-value对 进行排序,实现排序遍历。此时是考虑对key的自然排序或定制排序。

properties: 是Hashtable的子类;一般用于处理配置文件;key和value都是String类型

如何遍历Map中的key-value对,代码实现

public void test(){
	HashMap map =new HashMap();
    map.put("AA",123);
    map.put("BB",456);
    map.put("CC",789);
    
    Iterator iterator = map.iteraotr();
    while(iterator.hasNext()){
        Object obj =iterator.next();
        Object value = obj.get(obj);
        System.out.println("key+"+obj+"value+"+value);
    }     
}

Collection和Collections的区别

Collection是储存单列集合的接口,常用的有List和Set接口

Collections是操作Collection接口和Map接口的工具类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿昌喜欢吃黄桃

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

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

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

打赏作者

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

抵扣说明:

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

余额充值