Java集合有哪些?区别是什么?使用场景

您所在的位置:网站首页 java集合框架的优点 Java集合有哪些?区别是什么?使用场景

Java集合有哪些?区别是什么?使用场景

2023-08-28 00:26| 来源: 网络整理| 查看: 265

Java集合有哪些?区别是什么?使用场景?

今天我们简单聊一聊Java中的集合,Java中的集合有List,Set,Map。List和Set有着很多的相似之处,都是存储单例数据的集合,父接口都是Collection。List是有序的值允许重复,每次插入数据,不是把对象本身存储到集合中,而是在集合中用一个索引变量指向这个对象。Set是无序的不允许有重复的值出现。Map集合是存储双列数据的集合,存储的数据是无序的,键不可以重复,值可以重复。接下来详细的说说LIst,Set,Map。

1. List集合

ArrayList: 底层数据结构是数组,查询快,增删慢,查询是根据数组下标直接查询速度快,增删需要移动后边的元素和扩容,速度慢。线程不安全,效率高

LinkedList: 底层数据结构是链表,查询慢,增删快,查询需要遍历数组,速度慢,增删只需要增加或删除一个链接即可,速度快,线程不安全,效率高

Vector: 底层数据结构是数组,查询快,增删慢,线程安全,效率低

2.Set集合

Hashset: 底层数据结构是哈希表,是根据哈希算法来存取对象的,存取速度快,当Hashset中元素个数超过数组大小(默认值位0.75)时,会进行近似两倍的扩容,哈希表依赖两个方法hashcode()和equals()方法,方法的执行顺序,判断hashcode值是否相同,是:执行equals方法看其返回值,true:说明元素重复不添加,false:直接添加到集合,hashcode值不相同直接添加到集合。

LinkedHashset: 底层数据结构是链表和哈希表,由链表保证元素有序,由哈希表保证元素的唯一

Treeset 底层数据结构是红黑树(唯一,有序)由自然排序和比较器排序保证有序,根据返回值是否是0判断元素是否唯一

3.Map集合

HashMap: HashMap是基于散列表实现的,其插入和查询的的开销是固定的,可以通过构造器设置容量和负载因子来调整容器的性能,线程不安全,效率低

TreeSet: 基于红黑树实现,查看时,它们会被排序,TreeMap是唯一带有subMap()方法的Map,subMap()方法可以返回一个子树。

LInkedHashMap: 类似于HashMap,但是迭代遍历它时,取得的顺序是其插入次序,或者是最近最少使用(LRU)的次序。

4.Map取键值的两种方法

第一个,使用keySet方法,获得key的set,然后遍历set,就可以获得所有的value第二个,使用entrySet方法,获得map中的所有键值对的一个视图,遍历就可获得所有的key、value


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3