欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

collection集合详解

程序员文章站 2024-01-24 13:39:28
一:java集合的体系结构如下: Collection: List和Set继承自Collection接口。 |--List:|--ArrayList|--Vector|--LinkedList |--Set:|--HashSet|--TreeSet |--LinkedHashSet |--Queue ......

一:java集合的体系结构如下:

collection: list和set继承自collection接口。

|--list:
|--arraylist
|--vector
|--linkedlist

|--set:
|--hashset
|--treeset

|--linkedhashset

|--queue: 队列集合,有priorityqueue类

list:有序且允许元素重复。arraylist、linkedlist和vector是三个主要的实现类。

set:不允许元素重复。hashset和treeset是两个主要的实现类。

map:也属于集合系统,前两个继承至collection接口,map为独立接口。map是key对value的映射集合,其中key列就是一个集合。key不能重复,但是value可以重复。hashmap、hashtable,treemap,linkedhashmap前三个主要的实现类。

  • treemap是有序的,hashmap和hashtable是无序的。
  • hashtable的方法是同步的,hashmap的方法不是同步的。这是两者最主要的区别。

collection的功能概述:

a:添加功能:boolean add(e e)确保此 collection 包含指定的元素(可选操作)。
b:删除功能:boolean remove(object o)从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。
c:判断功能:
      boolean isempty()如果此 collection 不包含元素,则返回 true。 
      boolean contains(object o)如果此 collection 包含指定的元素,则返回 true
d:获取功能:iterator<e> iterator()返回在此 collection 的元素上进行迭代的迭代器。
e:长度功能:int size()返回此 collection 中的元素数。
f:交集(了解):boolean retainall(collection<?> c)仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。
g:把集合转数组(了解):object[] toarray()返回包含此 collection 中所有元素的数组。

— list 有序,可重复

arraylist
优点: 底层数据结构是数组,查询快,增删慢。
缺点: 线程不安全,效率高
vector
优点: 底层数据结构是数组,查询快,增删慢。
缺点: 线程安全,效率低
linkedlist
优点: 底层数据结构是链表,查询慢,增删快。
缺点: 线程不安全,效率高
—set 无序,唯一

hashset
底层数据结构是哈希表。(无序,唯一)
如何来保证元素唯一性?
1.依赖两个方法:hashcode()和equals()

linkedhashset
底层数据结构是链表和哈希表。(fifo插入有序,唯一)
1.由链表保证元素有序
2.由哈希表保证元素唯一

treeset
底层数据结构是红黑树。(唯一,有序)
1. 如何保证元素排序的呢?
自然排序
比较器排序
2.如何保证元素唯一性的呢?
根据比较的返回值是否是0来决定