集合的常见功能总结
1.集合体系
Collection
|--Listc 有序,可重复
|--ArrayList
底层数据结构是数组,查询快,增删慢,线程不安全,效率高
|--Vector
底层数据结构是数组,查询快,增删慢,线程安全,效率低
|--LinkedList
底层数据结构是链表,查询慢,增删快,线程不安全,效率高
|--Set 无序,唯一
|--HashSet
底层数据结构是哈希表,依赖hashCode()和equals()方法保证元素唯一
|--linkedHashSet
底层数据结构是链表和哈希表,由链表保证元素有序,由哈希表保证元素唯一
|--TreeSet
底层数据结构是红黑树,使用自然排序和比较器排序的方式对元素排序,
通过比较的返回值是够为0,决定元素的唯一性
2.Collection的常用功能
A:添加功能
boolean add(Object obj):添加一个元素
boolean addAll(Collection c):添加一个集合的元素
B:删除功能
void clear():移除所有元素
boolean removeAll(Collection c):只要有一个元素被移除,就返回true
boolean remove(object o):移除一个元素
C:判断功能
boolean contains(object o):判断集合中是否包含指定元素
boolean containsAll(Collection c):只有包含所有元素,才返回true
boolean isEmpty():判断集合是够为空
D:获取功能
Iterator<E> iterator()
E:长度功能
int size():返回元素的个数
F:交集功能
boolean retainAll(Collection c):交集功能
交集功能解释:
有两个集合A、B,A对B做交集,结果保存在A中,B不变,返回值表示A的元素时候发生变化
3.List集合的特有功能
A:添加功能
void add(int index,Object element):在指定位置添加元素
B:获取功能
Object get(int index):获取指定位置的元素
C:列表迭代器
ListIterator listIterator():
D:删除功能
Object remove(int index):根据索引删除元素,返回被删除的元素
E:修改功能
Object set(int index,Object element):根据索引修改元素,返回被修改的元素
4.Vector集合的特有功能
A:添加功能
public void addElement(Object obj): 添加功能(add())
B:获取功能
public Object elementAt(int index): 获取元素(get())
public Enumeration elements(): 迭代器(Iterator iterator())
boolean hasMoreElements(): ( hasNext() )
Object nextElement(): ( next() )
5.LinkedList集合的特有功能
A:添加功能
void addFirst(E e):将指定元素插入此列表的开头
void addLast(E e):将指定元素添加到此列表的结尾
B:删除功能
E removeFirst():移除并返回此列表的第一个元素
E removeLast():移除并返回此列表的最后一个元素
C:获取功能
E getFirst():返回此列表的第一个元素
E getLast():返回此列表的最后一个元素
6.Map接口的常见功能
A:添加功能
V put(K key,V value):添加元素
B:删除功能
void clear():移除所有的键值对元素
V remove(Object key):根据键删除键值对元素
C:判断功能
boolean containsKey(Object key):判断集合是否包含指定的键
boolean containsValue(Object value):判断集合是否包含指定的值
boolean isEmpty():判断集合是否为空
D:获取功能
Set<Map.Entry<K,V>> entrySet():返回价值对的Set集合
V get(Object key):根据键获取值
Set<K> keySet():获取集合中所有键的集合
Collection<V> values():获取集合中所有值的集合
E:长度功能
int size():返回集合中键值对的对数
7.Collections类的常用方法
public static <T> void sort(List<T> list):根据元素的自然顺序 对指定列表按升序进行排序
public static <T> int binarySearch(List<?> list,T key):使用二分搜索法搜索指定列表,以获得指定对象
public static <T> T max(Collection<?> coll):根据元素的自然顺序,返回给定 collection 的最大元素。
public static void reverse(List<?> list):反转指定列表中元素的顺序
public static void shuffle(List<?> list):使用默认随机源对指定列表进行置换
8.使用时应该选择哪种集合?
是否唯一?
|--是 Set
是否排序?
|--是 TreeSet
|--否 HashSet
建议:知道使用Set,但不知道使用哪个,就用HashSet。
|--否 List
是否安全?
|--是 Vector
|--否 ArrayList或者LinkedList
查询多:ArrayList
增删多:LinkedList
建议:知道使用List,但不知道使用哪个,就用ArrayList。
建议:知道使用集合,但不知道使用哪个,就用ArrayList。 |
|