Java集合类

109 阅读1分钟

Java 集合框架

1.PNG

AbstractCollection

2.PNG

AbstractMap

集合类

Set(重复元素不允许被加入)

HashSet

HashSet的底层主要是基于数组和链表来实现。之所以有相当快的查询速度主要是因为它是通过计算散列码hashCode来决定存储的位置。HashSet中主要是通过key的hashCode来计算hash值的。
如果存储的对象对多了,就有可能不同的对象所算出来的hash值是相同的,这就出现了所谓的hash冲突。解决hash冲突的方法有很多,HashSet底层是通过链表(拉链法)来解决hash冲突的。

List

List常用方法 add(); get(); set()

ArraryList

除了定义的add(),size()方法外,还可以利用迭代器Iterator来获取元素、列举元素。定义迭代器如下:

Iterator Iterator = list.iterator() ;
ListIterator Iterator = list.listIterator() ;

两种定义都可行,Iterator中定义了hasNext(),next(),remove()方法;ListIterator类中还具有previous(),set(Object obj),nextIndex(),previousIndex()等方法。

Vector(线程安全的)

Vector创建的对象默认初始容量是10,vet.capacity()返回空间大小;vet.size()返回元素个数。

Vertor类中定义了setSize(int size);clear();elementAt(int index)等方法。

Stack

Stack类是Vector类的子类,具有Vector类的所有方法。

Stack类中还定义了以下常用方法

push(obj)
pop()
empty()判断是否为空
peek()查看栈顶元素
search(obj)返回一个int值表示距离栈顶的距离

Queue

可用LinkedList类和PriorityQueue类来实现队列。

Map