Java学习|集合小结

List、Set与Map

文章目录

1)List
2)Set
3)Map


概述
  • 在写程序时不知道究竟需要多少对象,需要在控件不足时自动扩增容量,则需要使用容器类库
  • Collection、List、Set、Map都是接口,不能实例化,继承自它们的 ArrayList, Vector, HashTable, HashMap是具象class,这些才可被实例化。
  • List和Set都继承至Collection接口,Map为独立接口
List
  • 包括ArrayList,Vector,LinkedList
  • 有序,可重复;List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。
  • ArrayList
    • 底层是数组,查询快,增删慢,线程不安全,效率高
  • Veator
    • 底层是数组,查询快,增删慢,线程安全,效率低
  • LinkedList
    • 底层是链表,查询慢,增删快,线程不安全,效率高
  • 知道是List,但是不知道是哪个List,就用ArrayList。
Set
  • 包括HashSet、LinkedHashSet、TreeSet
  • 无序,唯一,无法用下标来取得想要的值;检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。
  • HashSet
    • 底层是哈希表,无序唯一,依赖hashCode()和equals()来保证元素唯一性
  • LinkedHashSet
    • 底层是链表和哈希表,有序唯一,由链表保证有序,由哈希表保证唯一
  • TreeSet
    • 底层是红黑树,有序唯一,自然排序和比较器排序保证元素排序,根据比较的返回值是否为0来保证元素的唯一性
  • 知道是Set,但是不知道是哪个Set,就用HashSet。
Map
  • 包括HashMap、LinkedHashMap、TreeMap、HashTable
  • 适合存储键值对的数据
  • HashMap
    • 底层是哈希表,非线程安全
    • 无序的,方法不是同步的,不是线程安全,效率较高,允许null值。
  • HashTable
    • 无序的,方法是同步,线程安全,效率较低,不允许有null值。
  • TreeMap
    • 底层是红黑树,非线程安全
    • 有序的,主要用于排序,可以自定义排序规则
  • LinkedHashSet
    • 主要保证有序的集合
  • java中String数组和List的互相转化

参考

java中Map,List与Set的区别
java 常用集合list与Set、Map区别及适用场景总结
Java集合中List,Set以及Map等集合体系详解

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值