Java类集总结
一.整体框架
二.详细介绍
l Iterable
继承结构: |- java.lang.Iterable
接口定义: public interface Iterable<T>
重要方法: Iterator<T> iterator() 返回类型 T元素的迭代器。
l Collection
继承结构: |- java.lang.Iterable
|- java.util Interface Collection<E>
接口定义: public interface Collection<E> extends Iterable<E>
重要方法:
1. boolean add(E e) 添加元素
2. boolean addAll(Collection<? extends E> c) 将指定集合中的所有元素添加到这个集合
3. void clear() 从这个集合中移除所有的元素
4. boolean contains(Object o) 返回true代表集合包含指定元素(依赖equals(),hasCode()方法)
5. boolean containsAll(Collection<?> c) 返回 true代表这个集合包含指定集合的所有元素
6. boolean equals(Object o) 将指定的对象与此集合进行比较,以进行相等性。
7. int hashCode() 返回此集合的哈希代码值
8. boolean isEmpty() 返回 true代表集合不包含任何元素
9. Iterator<E> iterator() 返回此集合中的元素的迭代器
10. boolean remove(Object o) 从这个集合中移除指定元素的一个实例,如果它是存在的
11. boolean removeAll(Collection<?> c) 删除此集合中包含的所有元素的所有元素
12. int size() 返回此集合中的元素的数目
13. Object[] toArray() 返回包含此集合中所有元素的数组
14. <T> T[] toArray(T[] a) 返回包含此集合中所有元素的数组;返回数组的运行时类型是指定的数组的运行时类型
15. boolean retainAll(Collection<?> c) 仅保留包含在指定集合中的这个集合中的元素
l List
继承结构:|- java.lang.Iterable
|-java.util Interface Collection<E>
|- java.util Interface List<E>
接口定义: public interface List<E> extends Collection<E>
重要方法:
1. void add(int index, E element) 在列表中指定的位置上插入指定的元素
2. E get(int index) 返回此列表中指定位置的元素
3. int indexOf(Object o) 返回此列表中指定元素的第一个出现的索引,如果此列表不包含元素返回- 1
4. int lastIndexOf(Object o) 返回此列表中指定元素的最后一个发生的索引,如果此列表不包含元素返回- 1
5. ListIterator<E> listIterator() 返回列表元素的列表迭代器(在适当的顺序)双向迭代
6. ListIterator<E> listIterator(int index)在列表中的元素上返回列表迭代器(在适当的顺序),从列表中的指定位置开始
7. E remove(int index) 移除此列表中指定位置的元素
8. E set(int index, E element) 用指定元素替换此列表中指定位置的元素
9. List<E> subList(int fromIndex, int toIndex) 返回一个 fromIndex到toIndex的部分数据
特征:
继承Collection接口,增强了Collection接口的功能,存储元素是有序的,可以向指定下标的位置添加数据(取出数据),允许集合内数据重复。
实现类:
ArrayList,Vector
|
| ArrayList | Vector |
1 | 定义 | public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess,Cloneable,Serializable | public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable |
2 |
| 异步操作 | 同步操作 |
3 |
| 非线程安全 | 线程安全 |
l Set
继承结构:
|- java.lang.Iterable
|-java.util Interface Collection<E>
|- java.util Interface Set<E>
接口定义: public interface Set<E> extends Collection<E>
重要方法:没有新增方法
特征:保证数据唯一,依赖于(hashCode() , equals())
实现类:
HashSet , TreeSet
|
| HashSet | TreeSet |
1 | 定义 | |- java.lang.Object |- java.util.AbstractCollection<E> |- java.util.AbstractSet<E> |- java.util.HashSet<E> | |- java.lang.Object |- java.util.AbstractCollection<E> |- java.util.AbstractSet<E> |- java.util.TreeSet<E> |
2 |
| 无序的 | 有序的 |
3 |
| 哈希表结构 | 二叉树结构 |
4 |
| 元素唯一 | 元素唯一 |
l Map
继承结构: java.util Interface Map<K,V>
接口定义: public interface Map<K,V>
重要方法:
1. void clear() 从这个映射中移除所有的映射
2. boolean containsKey(Object key) 返回 true是这Map包含一个指定的键
3. boolean containsValue(Object value) 返回 true是存在该值
4. Set<Map.Entry<K,V>> entrySet() 返回一个 Set视图的映射包含这个Map
5. V get(Object key) 返回指定的键映射的值,可以为null
6. boolean isEmpty() 返回 true是空集合
7. Set<K> keySet() 返回所有key的set集合
8. Collection<V> values() 返回所有的value的Collection集合
9. V put(K key, V value) 添加数据
10. void putAll(Map<? extends K,? extends V> m) 添加一个map集合
11. int size()
12. V remove(Object key)
实现类:
HashMap , TreeMap,Hashtable
| HashMap | Hashtable |
1 | |- java.lang.Object |- java.util.AbstractMap<K,V> |- java.util.HashMap<K,V> | |- java.lang.Object |- java.util.Dictionary<K,V> |- java.util.Hashtable<K,V> |
2 | 无序的 | 无序的 |
3 | 哈希表结构 | 哈希表结构 |
4 | Key或value可以为null | Key或value不能为null |
5 | 异步,非线程安全 | 同步,线程安全 |