Collections
Collections:是java针对集合操作专门提供的一个工具类
静态方法:
public static <T> void sort(List<T> list)
public static <T> int binarySearch(List<?> list,T key)
public static <T> T max(Collection<?> coll)
public static void reverse(List<?> list)
public static void shuffle(List<?> list)
import java.util.ArrayList;
import java.util.Collections;
public class CollectionsDemo1 {
public static void main(String[] args) {
ArrayList<Integer> list1 = new ArrayList<>();
list1.add(34);
list1.add(7);
list1.add(12);
list1.add(734);
list1.add(38);
list1.add(29);
System.out.println(list1);
System.out.println("-------------------------------");
//public static <T> void sort(List<T> list)
Collections.sort(list1); // 底层是调用了Arrays工具类中的sort方法
System.out.println(list1);
//public static <T> int binarySearch(List<?> list,T key)
// 二分查找【前提是序列是有序的】
//[7, 12, 29, 34, 38, 734]
System.out.println(Collections.binarySearch(list1, 100));
//public static <T> T max(Collection<?> coll) 求集合中最大值
System.out.println(Collections.max(list1));
ArrayList<String> list2 = new ArrayList<>();
list2.add("hello");
list2.add("world");
list2.add("java");
list2.add("apple");
list2.add("hadoop");
System.out.println(Collections.max(list2));
//public static void reverse(List<?> list)
Collections.reverse(list1);
System.out.println(list1);
System.out.println("===========================");
//public static void shuffle(List<?> list) 随机打乱元素
Collections.shuffle(list1);
System.out.println(list1); // [34, 734, 38, 7, 12, 29] [34, 12, 7, 38, 29, 734]
}
}
线程不安全转线程安全
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Vector;
/*
我们在说Vector类的时候,说到即便是安全的,我们也不会用它。
使用Collections工具类可以将任意一个不安全的集合类变成一个线程安全的集合类
*/
public class CollectionsDemo2 {
public static void main(String[] args) {
ArrayList<Integer> list1 = new ArrayList<>();
Vector<Integer> v1 = new Vector<>();
// List<Integer> list2 = Collections.synchronizedList(list1);
// list2.add(1);
// list2.add(1);
// list2.add(1);
// for (Integer i : list2) {
// System.out.println(i);
// }
}
}