Collections 工具类中定义着很多的 静态 方法,调用这些方法可以对 集合 进行一系列的操作。
public static <T> boolean addAll(@NotNull java.util.Collection<? super T> c, @NotNull T... elements)
将指定元素(可多个)添加到指定集合中。
public static <T extends Object & Comparable<? super T>> T max(@NotNull java.util.Collection<? extends T> coll)
返回集合中的最大值。
?public static <T extends Object & Comparable<? super T>> T min(@NotNull java.util.Collection<? extends T> coll)
返回集合中的最小值。
public static <T> int binarySearch(@NotNull java.util.List<? extends Comparable<? super T>> list, T key)?
返回指定元素的第一个下标 。
public static int frequency(@NotNull java.util.Collection<?> c, @Nullable Object o)
查找指定元素出现的次数。?
?public static void swap(@NotNull java.util.List<?> list, int i,?int j)
交换指定两个索引对应的值。?
public static <T extends Comparable<? super T>> void sort(@NotNull java.util.List<T> list)
将集合中的元素进行升序排序。
public static void reverse(@NotNull java.util.List<?> list)
反转集合,将集合中元素的顺序按原本顺序的倒序排列。
?public static void shuffle(@NotNull java.util.List<?> list)
将集合中的元素进行随机排序。
public static <T> void copy(@NotNull java.util.List<? super T> dest, @NotNull java.util.List<? extends T> src)
将集合 src 的数据复制到集合 dest 中,注意集合 dest 的长度一定大于等于 src,否则会报下标越界的异常。
public static <T> boolean replaceAll(@NotNull java.util.List<T> list, @Nullable T oldVal,?@Nullable T newVal)
将集合中指定元素用新的元素替换。?
public static <T> java.util.List<T> synchronizedList(@NotNull java.util.List<T> list)
public static <K, V> java.util.Map<K, V> synchronizedMap(@NotNull java.util.Map<K, V> m)
public static <T> java.util.Set<T> synchronizedSet(@NotNull java.util.Set<T> s)
public static <T> java.util.Collection<T> synchronizedCollection(@NotNull java.util.Collection<T> c)
将对应类型的集合变为线程安全的。
测试代码:
public static void main(String[] args) {
//定义一个集合
List<Integer> list = new ArrayList<>();
//调用 addAll() 方法
Collections.addAll(list, 1, 1, 4, 5, 1, 4);
//打印
print(list, "addAll()");
//调用 max() 方法
System.out.println("max(): " + Collections.max(list));
//调用 min() 方法
System.out.println("max(): " + Collections.min(list));
//调用 binarySearch() 方法
System.out.println("binarySearch(): " + Collections.binarySearch(list, 4));
//调用 frequency() 方法
System.out.println("frequency(): " + Collections.frequency(list, 1));
//调用 swap() 方法
Collections.swap(list, 0, 3);
//打印
print(list, "swap()");
//调用 sort() 方法
Collections.sort(list);
//打印
print(list, "sort()");
//调用 reverse() 方法
Collections.reverse(list);
//打印
print(list, "reverse()");
//调用 shuffle() 方法
Collections.shuffle(list);
//打印
print(list, "shuffle()");
List<Integer> copy = new ArrayList<>();
Collections.addAll(copy, 1, 9, 1, 9, 8, 1, 0);
//调用 copy() 方法
Collections.copy(copy, list);
//打印
print(copy, "copy()");
//调用 replaceAll() 方法
Collections.replaceAll(list, 1, 2);
//打印
print(list, "replaceAll()");
//调用 synchronizedList() 方法
Collections.synchronizedList(list);
}
//打印
public static void print(List<Integer> list, String method){
System.out.print(method + ": ");
for(int i: list){
System.out.print(i + " ");
}
System.out.println();
}
执行结果:
addAll(): 1 1 4 5 1 4
max(): 5
max(): 1
binarySearch(): 2
frequency(): 3
swap(): 5 1 4 1 1 4
sort(): 1 1 1 4 4 5
reverse(): 5 4 4 1 1 1
shuffle(): 4 1 1 5 4 1
copy(): 4 1 1 5 4 1 0
replaceAll(): 4 2 2 5 4 2
|