Java的Collections
Java提供了一个操作Set、List和Map等集合的工具类:Collections,该工具类里提供了大量方法对 集合元素进行排序、查询和修改等操作,还提供了对集合对象实现同步控制等方法。
一、 排序操作
修饰符 返回值类 型 方法(形参) 说明
static void reverse(List list) 反转指定列表中元素的顺序。
static void shuffle(List list) 使用默认随机源对指定列表进行置换。
static void sort(List list) 根据元素的自然顺序 对指定列表按升序进行 排序。
static void sort(List list, Comparator c) 根据指定比较器产生的顺序对指定列表进行 排序。
static void swap(List list, int i, int j) 在指定列表的指定位置处交换元素。
static void rotate(List list, int distance) 根据指定的距离轮换指定列表中的元素。
二、 查找和替换操作
修饰 符 返回值 类型 方法(形参) 说明
static int binarySearch(List list, T key) 使用二分搜索法搜索指定列表,以获得指定对象。
static int binarySearch(List list, T key,Comparator c) 使用二分搜索法搜索指定列表,以获得指定对象。 static Object max(Collection coll) 根据元素的自然顺序,返回给定 collection 的 最大元素。
static Object max(Collection coll,Comparator c) 根据指定比较器产生的顺序,返回给定collection 的最大元素。
static Object min(Collection coll) 根据元素的自然顺序,返回给定 collection 的 最小元素。
static Object min(Collectioncoll,Comparator c) 根据指定比较器产生的顺序,返回给定 collection 的最小元素。
static void fill(List list, T obj) 使用指定元素替换指定列表中的所有元素。
static int frequency(Collection c, Object o) 返回指定 collection 中等于指定对象的元素数。
static int indexOfSubList(List source, List target) 返回指定源列表中第一次出现指定目标列表的起始位置;如果没有出现这样的列表,则返回 -1。
static int lastIndexOfSubList(List source, List target) 返回指定源列表中最后一次出现指定目标列表 的起始位置;如果没有出现这样的列表,则返 回 -1。
static boolean replaceAll(List list, T oldVal, T newVal) 使用另一个值替换列表中出现的所有某一指定值。
三、 同步控制
Collections类中提供了多个 synchronized…()方法,这些方法可以将指定集合包装成线程同步(线程安 全)的集合,从而可以解决多线程并发访问集合时的线程安全问题。 Java中常用的集合框架中的实现类 ArrayList、Linkedlist、 HashSet、TreeSet、 HashMap和TreeMap 都是线程不安全的。如果有多个线程访问它们,而且有超过一个的线程试图修改它们,则存在线程安全 的问题。 Collections提供了多个类方法可以把它们包装成线程同步的集合