Collections类

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);
//        }
    }
}
posted @ 2024-10-11 20:40  rrrzzzrrr  阅读(7)  评论(0)    收藏  举报