1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Java集合Collection List Set区别与详解

Java集合Collection List Set区别与详解

时间:2021-05-01 22:48:22

相关推荐

Java集合Collection List Set区别与详解

Collection

java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。

List、Set的详解

一、List(有序可重复的)

1、List有三个常用的实现类ArrayList,LinkedList,Vector

ArrayList集合底层是数组。非线程安全。适合查询,不适合频繁的随机增删元素。ArrayList集合底层默认初始化容量是10,扩大之后的容量是原容量的1.5倍。LinkedList的底层数据结构是双向链表,链表适合频繁的增删元素,不适合查询操作。Vector集合底层是数组,线程安全。Vector集合底层默认初始化容量是10,扩大之后的容量是原容量的2倍。

2、如果优化ArrayList和Vector?

尽量减少扩容操作,因为扩容需要数组拷贝。数组拷贝很耗内存。一般推荐在创建集合的时候指定初始化容量。

3、ArrayList 和 LinkedList 的区别

ArrrayList底层的数据结构是数组,支持随机访问。LinkedList 的底层数据结构是双向链表,不支持随机访问。使用下标访问一个元素,ArrayList 的时间复杂度是 O(1),而 LinkedList 是 O(n)。

二、Set(无序不可重复)

1、Set常用的有一个实现类HashSet和一个子接口SortedSet

HashSet底层实际是一个HashMap,HashMap底层采用的是哈希表数据结构。HashSet其实是HashMap中的key部分。HashSet有什么特点,HashMap中的key应该具有相同的特点。存储在HashSet集合或者HashMap集合部分的元素,需要同时重写hashCode和equals方法。SortedSet:无序不可重复,但存进去的元素可以按照元素大小顺序自动排列。

2、HashSet 的实现原理

HashSet底层由HashMap实现HashSet的值存放于HashMap的key上HashMap的value统一为PRESENT

3、SortedSet集合存储元素为什么可以自动排序?

因为被存储的元素实现了Comparable接口,SUN编写TreeSet集合在添加元素的时候,会调用CompareTo方法完成比较。单独编写比较器,创建类并实现Comparator接口。(推荐)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。