java集合框架
一、集合类根接口(Collection,Map)
Collection
|
|----List
| |---ArrayList
| |---LinkedList
| |---Vector
| |---Stack
|----Set
| |---HashSet
| |---SortedSet
| | |---TreeSet
| |---EnumSet
|----Queue
|---Deque
|---PriorityQueue
Map
|-----HashTable
| |---Properties
|-----SortedMap
| |---TreeMap
|-----HashMap
| |---LinkedHashMap
1. Set、List和Map可以看做集合的三大类.
List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问.
Set集合是无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问(也是不能集合里元素不允许重复的原因).
Map集合中保存Key-value对形式的元素,访问时只能根据每项元素的key来访问其value.
2.ArrayList,HashMap是异步的,是线程安全的
Vector,HashTable是同步的,不是线程安全的
3.实现List接口的有:ArrayList,LinkedList,Vector,Stack
4.ArrayList实现大小可变的数组
#1.方法:boolean add(E e), void add(int index,E e);
boolean addAll(Collection<? extends E> c)
void clear(),
E get(int index)
int indexOf(Object o)
boolean isEmpty()
E remove(int index), boolean remove(Object o)
int size(); int capacity()
5.Vector
#1.方法:boolean add(E e), void add(int index,E e);
boolean addAll(Collection<? extends E> c)
int capacity(), void clear()
E elementAt(int index)
int indexOf(Object o), int lastIndexOf(Object o)
void insertElementAt(E obj, int index)
E remove(int index)
6.HashSet
#1.方法:boolean add(E e), void clear()
Object clone(), boolean isEmpty()
boolean remove(Object o), int size()
7.HashTable
#1.方法:void clear(), V get(Object key)
int hashCode(), boolean isEmpty()
Enumeration(K) keys(), V remove(Object key)
int size(), Collection<V> values()
8.HashMap
#1.方法:void clear(), V put(K key, V value)
V get(Object key), Set<k> keySet()
V remove(Object key), int size()
Collectin<V> values()
9.遍历:
#1.Iterator接口:Iterator也是Java集合框架的成员,主要用于遍历Collection集合中的元素
*方法:boolean hasNext():判断集合里是否还有元素
Object next():返回集合里下一个元素
void remove();删除集合里上一次next方法返回的元素
#2.foreach循环遍历
*说明:
(1)foreach简化了对数组和集合的遍历,不需要使用下标
(2)简化了编程,提高了代码的可读性和安全性(不用怕数组越界)
(3)foreach一般结合泛型使用