Java - List Map Set 存取元素的特点学习汇总

List

存 :以特定的索引存放元素,有序可重复
取 :一般利用 for 循环,foreach 循环,Iterator 迭代器迭代,stream流( java 8)

List 接口有三个实现类:

  • ArrayList 底层结构是数组非线程安全,底层查询快增删慢
  • LinkedList 底层结构是链表,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。增删快查询慢
  • Vector 底层结构是数组,并且线程安全增删慢查询慢

Set

存 :无序不可重复,元素在 set 中的位置由该元素的 HashCode 决定,其位置是固定的
取 :一般利用 foreach 循环,Iterator 迭代器迭代

Set 有两个实现类:

  • HashSet 的底层由 HashMap 实现
  • LinkedHashSet

SortedSet 接口有一个实现类 :

  • TreeSet(底层由平衡二叉树实现)

Query 接口有一个实现类 :

  • LinkList

Map

存 :保存键值对(key-value pair)的映射,映射关系可以是一对一(键值)或者多对一。Key 无序且不可重复,Value 可以重复
取 :需转换为 Set ,然后进行 Iterator 迭代器迭代,或转换为 Entry 对象进行 Iterator 迭代器迭代

Map 接口有三个实现类 :

  • HashMap 是非线程安全的,但高效支持 null
  • HashTable 是线程安全的,但低效不支持 null
  • LinkeHashMap

Sortedmap 有一个实现类:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值