Java 集合框架
集合类
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类来实现队列。