每日三道题2023.2.8

HashMap与HashTable的主要区别在于HashMap允许键值为null,非同步;而HashTable不允null且同步。ArrayList基于数组,适合查询,插入删除性能较低;LinkedList基于链表,插入删除快速,查询慢。安全的集合包括Vector,ConcurrentHashMap,HashTable。
摘要由CSDN通过智能技术生成

每日三道题

1.HashMap和HashTable的区别。

2.ArrayList和LinkedList的区别。

3.安全的集合框架有。

一.HashMap和HashTable的区别

  • 底层数据结构不同:jdk1.7底层都是数组+链表,但jdk1.8 HashMap加入了红黑树
  • Hashtable 是不允许键或值为 null 的,HashMap 的键值则都可以为 null。
  • 初始化容量不同:HashMap 的初始容量为:16,Hashtable 初始容量为:11,两者的负载因子默认都是:0.75
  • 扩容机制不同:当已用容量>总容量 * 负载因子时,HashMap 扩容规则为当前容量翻倍,Hashtable 扩容规则为当前容量翻倍 +1。
  • 同步性不同: Hashtable是同步(synchronized)的,适用于多线程环境,而hashmap不是同步的,适用于单线程环境。多个线程可以共享一个Hashtable;
  • 当HashMap的数组长度到达64且链表长度大于8时,链表转换为红黑树

二.ArrayList和LinkedList的区别

  • ArrayList:底层是数组,查询快增删慢,初始容量是10,扩展为原来1.5倍
  • LinkedList:底层是链表,增删快查询慢

三.安全的集合类型有

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值