集合相同点和不同点

LinkedList的方法与ArraryList的方法一模一样

LinkedList添加了removeFirst(),removeLast()两个方法

HashSet的方法与去掉ArraryList的方法中针对下标操作的方法之后的其他方法一模一样

LinkedHashSet的方法与HashSet的方法一模一样

TreeSet的方法与HashSet及其方法一模一样

LinkedHashMap、ConcurrentHashMap的方法在使用层面和HashMap的方法没有区别

TreeMap的方法在使用层面和HashMap的方法没有区别

HashSet底层是由HashMap实现的。

TreeSet底层是由TreeMap实现的。

LinkedHashset底层是由LinkedHashMap和实现的。

HashSet存储数据后,存入数据的顺序与取出数据的顺序不一致,并且会去重

LinkedHashSet存储数据后,存入数据的顺序与取出数据的顺序一致,并且会去重

TreeSet存储数据后,String类(字典排序)、包装类(数字升序排序),自然排序,并且会去重(底层是二叉树),内置比较器,外置比较器

Set接口下所有的实现类只可以获取Iterator迭代器

List接口下所有的实现类可以获取Iterator迭代器和ListIterator迭代器

LinkedList实现类获取迭代器与ArraryList 实现类一模一样

HashSet实现类获取Iterator迭代器与ArraryList 实现类获取Iterator迭代器一模一样

LinkedHashSet实现类获取Iterator迭代器与ArraryList 实现类获取Iterator迭代器一模一样

TreeSet实现类获取Iterator迭代器与ArraryList 实现类获取Iterator迭代器一模一样

ArrayList 与 LinkedList的区别

使用上的区别:

​ LinkedList添加了removeFirst(),removeLast()两个方法

​ 队列模式-先进先出(removeFirst())

​ 栈模式-先进后出(removeLast())

效率上的区别:由于ArrayList底层数据结构是一维数组,LinkedList底层数据结构是双向链表

​ 添加 - 不扩容的情况:ArrayList快

​ 添加 - 扩容的情况:LinkedList快

​ 删除:LinkedList快

​ 修改:ArrayList快

​ 查询:ArrayList快

​ 注意:工作中常用ArrayList,因为很多需求都需要使用查询功能,ArrayList查询更快

应用场景:

HashMap:存key+value,key去重,无序,线程不安全的,单线程用,可以存储null键null值

LinkedHashMap:存key+value,key去重,有序,线程不安全的,单线程用,可以存储null键null值

Hashtable(已弃用):存key+value,key去重,无序,线程安全的(方法上加锁,效率低),多线程用,不可以存储null键null值

ConcurrentHashMap:存key+value,key去重,无序,线程安全的(局部加锁,CAS-效率高),多线程用,不可以存储null键null值

HashMap底层

JDK1.7版本HashMap的底层数据结构是什么?

JDK1.8版本HashMap的底层数据结构是什么?

JDK1.8HashMap单向链表为什么大于8就转为二叉树?

HashMap的初始化容量是多少?

HashMap何时扩容?

HashMap的扩容机制

HashMap的容量为什么必须是2的幂?

HashMap底层中的数组最大值是多少?

HashMap底层中的数组最大值为什么是1<<30?

什么是Hash表?

什么是Hash桶?

什么是hash碰撞?

HashMap默认负载因子是多少?

负载因子有什么用

HashMap默认负载因子为什么是0.75?

HashMap存入元素的步骤

使用HashMap需要注意什么?

hash种子数的含义及作用?

HashMap存放null键的位置在哪?

hash回环/死循环是什么情况下造成的?

JDK1.8的HashMap有哪些改进?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值