VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • Java集合框架(一)

Collection接口

继承结构

 

 

 

 

 Iterator接口

Iterator接口定义了迭代器的基本方法

 
1
2
3
4
5
hasNext()   如果迭代具有更多元素,则返回 true
 
next()   返回迭代中的下一个元素
 
remove()   从底层集合中删除此迭代器返回的最后一个元素

Collection接口,List接口,Set接口

Collection接口是所有List,Set集合的接口,所有集合框架都在java.util包下。

List,Set接口为他的实现类制定了详细的规则,其中List下的实现类是有序的,Set下的实现类是无序的。

在List的实现类中可以包含重复元素,但在Set的实现类中不能包含重复元素。

ArrayList ,LinkedList 类

ArrayList 类是基于数组实现的,为了解决数组只能设置固定长度而生。在ArrayList类中,集合长度是随着数组中元素而动态变化的,可以理解为长度动态变化的数组,初始容量为10 ,通常预估所需容量,减少扩容次数。

LinkedList类是一个双向链表,实用于需要大量随机插入元素时,ArrayList处理此问题性能较差。

 

双向链表实现了List和Deque接口。 实现所有可选列表操作,并允许所有元素。因为双向链表实现了Deque双端队列接口,因此双向链表可以作为队列来使用。

 

ArrayList,LinkedList常用方法(List接口声名):

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Add(E e) 将指定元素添加到表尾
 
Add(int index , E element)  在指定位置插入元素
 
addAll(Collection c)  将Collection集合中的所有元素添加至表尾
 
addAll(int index , Collection c)  将Collection集合中所有的元素插入指定位置
 
addFirst(E e)  在列表开始插入元素
 
addList(E e)   在列表结尾插入元素
 
clear()            清空链表
 
contains(Object o)       如果链表包含此元素返回true
 
indexOf(Object o)        返回链表中第一次出现的索引
 
get(int index)        返回列表中指定位置的元素
 
isEmpty()  此链表不包含元素返回true
 
set(int index, E element)      用指定的元素(可选操作)替换此列表中指定位置的元素

LinkedList作为队列常用方法(Deque接口声名):

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
element()       检索但不删除第一个元素
 
getFirst()        返回第一个元素
 
getLast()        返回最后一个元素
 
indexOf(Object o)        返回列表中指定元素第一次出现的索引
 
element()       检索但不删除第一个元素
 
getFirst()        返回第一个元素
 
getLast()        返回最后一个元素
 
offer(E e)  将指定元素添加到表尾
 
offerFirst(E e)  在链表前插入指定元素
 
offerLast(E e)   在列表尾插入指定元素
 
peek()            检索但不删除第一个元素
 
peekFirst()     检索但不删除此列表的第一个元素
 
peekLast()      检索但不删除此列表的最后一个元素
 
poll()            检索并删除此列表的头(第一个元素)
 
pollFirst()       检索并删除此列表的第一个元素
 
pollLast()        检索并删除此列表的最后一个元素
 
pop()             从此列表表示的堆栈中弹出一个元素
 
push(E e)   将元素推送到由此列表表示的堆栈上
 
remove()   检索并删除此列表的头
 
remove(int index)   删除该列表中指定位置的元素
 
remove(Object o)   从列表中删除指定元素的第一个出现

TreeSet,HashSet类

TreeSet类是一个基于红黑树(自平衡二叉树)实现的集合,唯一,无序性。

HashSet 类是一个基于哈希表实现的集合( 底层由HashMap实现 ),唯一不可重复。

两者都是非线程安全的。

HashMap 底层将处理方法几乎完全交给HashMap处理 ,HashMap的数据存储是通过链表+红黑树+数组实现的,首先通过hash函数计算在数组中存储位置,如果该位置已经有值了,判断key是否相同,如果相同则覆盖,不相同放到元素对应的链表中(通过链表+红黑树解决哈希冲突问题),如果链表长度大于8,就转化为红黑树。

 

常用方法(Set接口声名):

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
add(E e)   如果指定的元素不存在,则将其指定的元素添加
 
addAll(Collection<? extends E> c)   将指定集合中的所有元素添加到此集合
 
clear()    从此集合中删除所有元素
 
contains(Object o)    如果此集合包含指定的元素,则返回 true
 
containsAll(Collection c)   判断集合是否全部包含指定集合的所有元素
 
isEmpty()   如果此集合不包含元素,则返回 true
 
iterator()    返回此集合中元素的迭代器
 
remove(Object o)   如果存在,则从该集合中删除指定的元
 
removeAll(Collection<?> c)    从此集合中删除指定集合中包含的所有元素
 
retainAll(Collection<?> c)  仅保留该集合中包含在指定集合中的元素
 
size()   返回此集合中的元素数
 
toArray()    返回一个包含此集合中所有元素的数组
 
toArray(T[] a)  返回一个包含此集合中所有元素的数组

 

 

 


__EOF__

  • 本文作者: coisini-zheng
  • 本文链接: https://www.cnblogs.com/coisini-zheng/p/15911683.html

    
    相关教程