一、集合框架图

二、接口说明
List接口:元素可以重复,可以插入多个null元素,是一个有序容器。
Set接口:元素不允许重复,只允许一个null元素,是一个无序容器。
Map接口:Map的每个Entry都持有两个对象,一个键一个值,Map里可以拥有多个相同的值,但必须具有唯一的键。
三、适用场景
ArrayList:线程不安全,可以快速查询,增删慢。
LinkedList:线程不安全,增删快,查询慢。
Vector:线程安全。
HashSet:元素不可重复,不需要排序。
TreeSet:元素不可重复,需要排序。
四、常用方法
List常用方法
public boolean add(E e)向列表的尾部添加指定的元素 public void add(int index, E element)在列表的指定位置插入指定元素 public boolean addAll(Collection c)添加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序 public void clear()从列表中移除所有元素 public boolean contains(Object o)如果列表包含指定的元素 public E get(int index)返回列表中指定位置的元素。 public boolean isEmpty()如果列表不包含元素,则返回 true。 public ListIterator listIterator()返回此列表元素的列表迭代器(按适当顺序)。 public E remove(int index)移除列表中指定位置的元素 public Object[] toArray()返回按适当顺序包含列表中的所有元素的数组ArrayList独有方法
public Object clone()返回此 ArrayList 实例的浅表副本。 public void ensureCapacity(int minCapacity)如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。 protected void removeRange(int fromIndex , int toIndex)移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。 public void trimToSize()将此 ArrayList 实例的容量调整为列表的当前大小。
LinkedList独有方法
public void addFirst(E e)将指定元素插入此列表的开头。 public E element()获取但不移除此列表的头(第一个元素)。 public E getFirst() 返回此列表的第一个元素。 public boolean offer(E e)将指定元素添加到此列表的末尾(最后一个元素)。 public boolean offerFirst(E e)在此列表的开头插入指定的元素。 public E poll()获取并移除此列表的头(第一个元素) public boolean removeFirstOccurrence(Object o) 从此列表中移除第一次出现的指定元素(从头部到尾部遍历列表时)。Map常用方法
public boolean containsKey(Object key) 如果此映射包含指定键的映射关系,则返回 true。 public boolean containsValue(Object value)如果此映射将一个或多个键映射到指定值,则返回 true。 public Set entrySet() 返回此映射中包含的映射关系的 Set 视图 public Collection values()返回此映射中包含的值的 Collection 视图。 public V remove(Object key)如果存在一个键的映射关系,则将其从此映射中移除。 public void putAll(Map m)从指定映射中将所有映射关系复制到此映射中.五、Collections、Iterator、Comparator
Iterator接口方法
public boolean hasNext()如果仍有元素可以迭代,则返回 true public E next()返回迭代的下一个元素。 public void remove()从迭代器指向的 collection 中移除迭代器返回的最后一个元素,
注:remove方法是在迭代过程中删除元素的唯一安全的方法
Collections提供了很多针对集合的静态方法
public static boolean addAll(Collection c,T ...elements)将所有指定元素添加到指定 collection 中。 public static binarySearch(List list, T key)使用二分搜索法搜索指定列表,以获得指定对象 public static void sort(List list)根据元素的自然顺序 对指定列表按升序进行排序。 public static void sort(List list,Comparator c)根据指定比较器产生的顺序对指定列表进行排序。 public static void reverse(List list)反转指定列表中元素的顺序
注:Map没有Iterator方法,如需对Map进行遍历,可以先调用Map的entrySet方法,得到Set后遍历。
例
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class Test9 { public static void main(String agrs[]){ Map<Integer,String> map = new HashMap<Integer, String>(); map.put(4,"我是4"); map.put(3,"我是3"); map.put(7,"我是7"); Set set = map.entrySet(); Iterator it = set.iterator(); while (it.hasNext()){ System.out.println(it.next()); } for(Map.Entry<Integer,String> entry :map.entrySet()){//Map.Entry<K,V>()方法返回映射的Collection视图,仅在迭代期间有效 if(entry.getKey()==3) { entry.setValue("我是1"); } System.out.println(entry); } } } /* Map.Entry<K,V>接口还有如下几种常用方法 public K getKey()返回与此项对应的键。 public V getValue()返回与此项对应的值。 public V setValue(V value)用指定的值替换与此项对应的值(可选操作)。 */
本文详细介绍了Java集合框架的核心概念,包括List、Set、Map等接口的特点及应用场景,并列举了常用的集合操作方法,如添加、查询、删除等。此外,还对比了不同集合类的特性,如ArrayList与LinkedList的区别。
846

被折叠的 条评论
为什么被折叠?



