Java集合之Collections工具类

Java集合之Collections工具类

public class Collections extends Object

  • 此类仅包含对collection 进行操作或返回collection 的静态方法。 它包含对collection 进行操作的多态算法、“包装器”,它返回由指定collection 支持的新collection ,以及其他一些零碎的东西。

  • 如果提供给它们的collection 或类对象为空 null,则此类的方法都将抛出 NullPointerException。

  • 此类中包含的多态算法的文档通常包括对实现的简要说明。 此类描述应视为实现说明,而不是规范的一部分。 只要遵守规范本身,实现者应该可以随意替换其他算法。 (例如,sort 使用的算法不一定是归并排序,但它必须是稳定的。)

  • 该类中包含的“破坏性”算法,即修改它们操作的collection 的算法, 如果collection 不支持适当的变异原语,例如 set 方法,则指定抛出 UnsupportedOperationException。 如果调用对collection 没有影响,则这些算法可能(但不是必需)抛出此异常。 例如,对已排序的不可修改列表调用 sort 方法可能会也可能不会抛出 UnsupportedOperationException。

字段

Modifier and Type Field Description
static List EMPTY_LIST 空列表(不可变)。
static Map EMPTY_MAP 空地图(immutable)。
static Set EMPTY_SET 空集(不可变)。

方法

Modifier and Type Method Description
static boolean addAll(Collection<? super T> c, T… elements) 将所有指定的元素添加到指定的集合。
static Queue asLifoQueue(Deque deque) 返回Deque作为先进先出(Lifo)Queue的视图。
static int binarySearch(List<? extends Comparable<? super T>> list, T key) 使用二叉搜索算法搜索指定对象的指定列表。
static int binarySearch(List<? extends T> list, T key, Comparator<? super T> c) 使用二叉搜索算法搜索指定对象的指定列表。
static Collection checkedCollection(Collection c, Class type) 返回指定集合的动态类型安全视图。
static List checkedList(List list, Class type) 返回指定列表的动态类型安全视图。
static <K,V> Map<K,V> checkedMap(Map<K,V> m, Class keyType, Class valueType) 返回指定地图的动态类型安全视图。
static <K,V> NavigableMap<K,V> checkedNavigableMap(NavigableMap<K,V> m, Class keyType, Class valueType) 返回指定可导航地图的动态类型安全视图。
static NavigableSet checkedNavigableSet(NavigableSet s, Class type) 返回指定的可导航集的动态类型安全视图。
static Queue checkedQueue(Queue queue, Class type) 返回指定队列的动态类型安全视图。
static Set checkedSet(Set s, Class type) 返回指定集合的动态类型安全视图。
static <K,V> SortedMap<K,V> checkedSortedMap(SortedMap<K,V> m, Class keyType, Class valueType) 返回指定排序映射的动态类型安全视图。
static SortedSet checkedSortedSet(SortedSet s, Class type) 返回指定排序集的动态类型安全视图。
static void copy(List<? super T> dest, List<? extends T> src) 将所有元素从一个列表复制到另一个列表中。
static boolean disjoint(Collection<?> c1, Collection<?> c2) 如果两个指定的集合没有共同的元素,则返回 true 。
static Enumeration emptyEnumeration() 返回没有元素的枚举。
static Iterator emptyIterator() 返回没有元素的迭代器。
static List emptyList() 返回空列表(不可变的)。
static ListIterator emptyListIterator() 返回没有元素的列表迭代器。
static <K,V> Map<K,V> emptyMap() 返回空的地图(不可变)。
static <K,V> NavigableMap<K,V> emptyNavigableMap() 返回空导航地图(不可变)。
static NavigableSet emptyNavigableSet() 返回一个空导航集(不可变的)。
static Set emptySet() 返回一个空集(不可变的)。
static <K,V> SortedMap<K,V> emptySortedMap() 返回空的排序映射(不可变的)。
static SortedSet emptySortedSet() 返回一个空的排序集(不可变的)。
static Enumeration enumeration(Collection c) 返回指定集合的枚举。
static void fill(List<? super T> list, T obj) 用指定的元素代替指定列表的所有元素。
static int frequency(Collection<?> c, Object o) 返回指定集合中与指定对象相等的元素数。
static int indexOfSubList(List<?> source, List<?> target) 返回指定源列表中指定目标列表的第一次出现的起始位置,如果没有此类事件,则返回-1。
static int lastIndexOfSubList(List<?> source, List<?> target) 返回指定源列表中指定目标列表的最后一次出现的起始位置,如果没有此类事件则返回-1。
static ArrayList list(Enumeration e) 返回一个数组列表,其中包含由枚举返回的顺序由指定的枚举返回的元素。
static <T extends Object & Comparable<? super T>>T max(Collection<? extends T> coll) 根据其元素的 自然顺序返回给定集合的最大元素。
static T max(Collection<? extends T> coll, Comparator<? super T> comp) 根据指定的比较器引发的顺序返回给定集合的最大元素。
static <T extends Object & Comparable<? super T>>T min(Collection<? extends T> coll) 根据其元素的 自然顺序返回给定集合的最小元素。
static T min(Collection<? extends T> coll, Comparator<? super T> comp) 根据指定的比较器引发的顺序返回给定集合的最小元素。
static List nCopies(int n, T o) 返回由指定对象的 n副本组成的不可变列表。
static Set newSetFromMap(Map<E,Boolean> map) 返回由指定地图支持的集合。
static boolean replaceAll(List list, T oldVal, T newVal) 将列表中一个指定值的所有出现替换为另一个。
static void reverse(List<?> list) 反转指定列表中元素的顺序。
static Comparator reverseOrder() 返回一个比较器,它对实现 Comparable接口的对象集合施加了 自然排序的相反。
static Comparator reverseOrder(Comparator cmp) 返回一个比较器,它强制指定比较器的反向排序。
static void rotate(List<?> list, int distance) 将指定列表中的元素旋转指定的距离。
static void shuffle(List<?> list) 使用默认的随机源随机排列指定的列表。
static void shuffle(List<?> list, Random rnd) 使用指定的随机源随机排列指定的列表。
static Set singleton(T o) 返回一个只包含指定对象的不可变集。
static List singletonList(T o) 返回一个只包含指定对象的不可变列表。
static <K,V> Map<K,V> singletonMap(K key, V value) 返回一个不可变的地图,只将指定的键映射到指定的值。
static <T extends Comparable<? super T>>void sort(List list) 根据其元素的natural ordering对指定的列表进行排序。
static void sort(List list, Comparator<? super T> c) 根据指定的比较器引起的顺序对指定的列表进行排序。
static void swap(List<?> list, int i, int j) 交换指定列表中指定位置的元素。
static Collection synchronizedCollection(Collection c) 返回由指定集合支持的同步(线程安全)集合。
static List synchronizedList(List list) 返回由指定列表支持的同步(线程安全)列表。
static <K,V> Map<K,V> synchronizedMap(Map<K,V> m) 返回由指定地图支持的同步(线程安全)映射。
static <K,V> NavigableMap<K,V> synchronizedNavigableMap(NavigableMap<K,V> m) 返回由指定的可导航地图支持的同步(线程安全)可导航地图。
static NavigableSet synchronizedNavigableSet(NavigableSet s) 返回由指定的可导航集支持的同步(线程安全)可导航集。
static Set synchronizedSet(Set s) 返回由指定集合支持的同步(线程安全)集。
static <K,V> SortedMap<K,V> synchronizedSortedMap(SortedMap<K,V> m) 返回由指定的排序映射支持的同步(线程安全)排序映射。
static SortedSet synchronizedSortedSet(SortedSet s) 返回由指定的排序集支持的同步(线程安全)排序集。
static Collection unmodifiableCollection(Collection<? extends T> c) 返回指定集合的不可修改视图。
static List unmodifiableList(List<? extends T> list) 返回指定列表的不可修改视图。
static <K,V> Map<K,V> unmodifiableMap(Map<? extends K,? extends V> m) 返回指定地图的不可修改视图。
static <K,V> NavigableMap<K,V> unmodifiableNavigableMap(NavigableMap<K,? extends V> m) 返回指定可导航地图的不可修改视图。
static NavigableSet unmodifiableNavigableSet(NavigableSet s) 返回指定的可导航集合的不可修改的视图。
static Set unmodifiableSet(Set<? extends T> s) 返回指定集合的不可修改视图。
static <K,V> SortedMap<K,V> unmodifiableSortedMap(SortedMap<K,? extends V> m) 返回指定排序映射的不可修改视图。
static SortedSet unmodifiableSortedSet(SortedSet s) 返回指定排序集的不可修改视图。

常用方法

添加addAll:

ArrayList<String> list = new ArrayList<>();
list.add("cc");
list.add("bb");
list.add("aa");
Collections.addAll(list,"ee","dd","ff");
Collections.addAll(list,new String[]{
    
    "gg","ii","hh"});
System.out.println(list); //[cc, bb, aa, ee, dd, ff, gg, ii, hh]

binarySearch必须在有序的集合中查找,先排序:

Collections.sort(list);//sort提供的是升序排列
System.out.println(list); //[aa, bb, cc, dd, ee, ff, gg, hh, ii]
//binarySearch
System.out.println(Collections.binarySearch(list, "cc")); //2

copy:替换方法

ArrayList<String> list2 = new ArrayList<>();
Collections.addAll(list2,"tt","ss"); 
Collections.copy(list,list2);//将list2的内容替换到list上去
System.out.println(list);//[tt, ss, cc, dd, ee, ff, gg, hh, ii]
System.out.println(list2); //[tt, ss]

fill 填充

Collections.fill(list2,"yyy");
System.out.println(list2); //[yyy, yyy]

猜你喜欢

转载自blog.csdn.net/m0_46530662/article/details/119801990