Java各种集合以及特点归纳总结 您所在的位置:网站首页 各种树叶的特点和作用 Java各种集合以及特点归纳总结

Java各种集合以及特点归纳总结

2024-04-05 02:22| 来源: 网络整理| 查看: 265

在Java中有List、 Set、 Map三大集合,其中List与Set是继承自Collection,而Map不是。 文末有三大集合的汇总总结,有需要的可以直接拉到文末。

List集合: 1、ArrayList(最常用)

底层是动态数组,故优缺点同数组:查询快,增删慢 线程不安全,效率高

2、LinkedList

底层是链表,(巧记:和数组优缺点互补)查询慢,增删快 线程不安全,效率高

3、Vector

底层是数组,查询快,增删慢 线程安全,效率低

Set集合: 1、HashSet

(也可参考我的另一篇:https://blog.csdn.net/tiansheshouzuo/article/details/88902405) 底层是哈希表 哈希表唯一依赖两个方法:hashCode(),equals(); 向HashSet集合中放入新元素的执行顺序: 1、调用Hashcode()函数,看是否已经有相同的哈希值 2、如果没有则放入该新元素,如果有则调用equals()函数逐个比对,如果没有,则放入,如果有,则不执行添加元素操作。

2、LinkedHashSet

底层是:哈希表(元素不可重复)+链表(有序,因为链表记录每个元素都记录后一个元素的地址) PS:何为有序? 有序指的不是自动排序,序指的是元素存入集合的顺序,当元素存入的顺序和元素的排序位置是一致时就是有序

3、TreeSet

底层是红黑树,自然平衡二叉树,因为是二叉树结构所以集合内元素自动按升序排列(升序是其最大特征)。 元素不可重复 (理解思路1:TreeSet是对Set集合的实现,而Set集合都是不可重复的 理解思路2:TreeSet自动排序,添加元素时会调用compareTo(Object obj)方法,遇到重复不添加元素) 有两种排序方法:自然排序(默认升序)和定制排序。

Map集合:(一对数据地去保存:“键+值”) 1、HashMap

底层是哈希表(哈希表的本质是数组+链表) 把它的键套用HashSet的规则即可,只是每个键都附带了其各自的值。

2、LinkedHashMap

底层是哈希表和链表 把它的键套用LinkedHashSet的规则即可,只是每个键都附带了其各自的值。

3、Hashtable

底层是哈希表(哈希表的本质是数组+链表),十分类似于HashMap 与HashMap唯一区别:Hashtable线程安全,效率低,不允许null键null值 HashMap线程不安全,效率高,允许null键null值

4、TreeMap

底层是红黑树,自然平衡二叉树 其键的存储类似于TreeSet,只是每个键都附带了其各自的值(value)。

List集合特点:1、有存放顺序(有序)2、元素可重复 Set集合特点:1、没有存放顺序 2、元素不可重复 Map集合特点:Map属于双列集合,由键值对组成(键+值 成对存储),其中键完全和List集合的特点相同(底层一样),值依附于每一个键上,不受规则影响(比如TreeMap的键不可重复,但值可重复)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有