Collections是一个工具类
    这个类是一个静态类,也就是意味着可以直接通过类名 . 方法调用 - 不需要实例化
    这个类中的方法都是静态方法 - 基本上都是为集合中服务的

    public static void shuffle(List<?> list):打乱元素的顺序 - 其实打乱的是集合中元素的下标

    有顺序:每一个元素都是按照添加的时候生成的下标进行排序
    排序后:不管是第几个放的,只要是到了集合中,就会按照一定的顺序重新排列

    打乱顺序:

    1. package Test19_Demo.Demo05;/*
    2. @create 2020--12--09--11:11
    3. */
    4. import java.util.ArrayList;
    5. import java.util.Collections;
    6. import java.util.List;
    7. public class CollectionsDemo {
    8. public static void main(String[] args) {
    9. //创建有序的集合对象 - 向上造型
    10. List<Integer> list = new ArrayList<>();
    11. //添加数据
    12. list.add(2);
    13. list.add(3);
    14. list.add(4);
    15. list.add(5);
    16. //打乱前的顺序
    17. System.out.println(list);//[2, 3, 4, 5]
    18. //打乱
    19. Collections.shuffle(list);
    20. //打乱后的排序
    21. System.out.println(list);
    22. }
    23. }

    当对象类型进行排序的时候会报错,因为定义数据类型的对象没有比较顺序,不知道什么是大什么是小
    所以不能进行排序
    没有比较规则

    二分查找法:在一个集合中,如果找得到就返回一个值,如果找不到就返回一个负数索引
    不管这个指定元素的下表是多少
    二分查找法必须要求集合中的元素排列好顺序。

    binarySearch(查找的集合,在集合中查找的内容);

    1. package Test19_Demo.Demo05;/*
    2. @create 2020--12--09--11:11
    3. */
    4. import java.util.ArrayList;
    5. import java.util.Collections;
    6. import java.util.List;
    7. public class CollectionsDemo3 {
    8. public static void main(String[] args) {
    9. //创建有序的集合对象 - 向上造型
    10. List<Integer> list1 = new ArrayList<>();
    11. //添加数据
    12. list1.add(2);
    13. list1.add(3);
    14. list1.add(7);
    15. list1.add(4);
    16. list1.add(9);
    17. list1.add(6);
    18. list1.add(5);
    19. System.out.println(list1);
    20. /*//直接进行二分查找 - 没有排序
    21. int i = Collections.binarySearch(list1, 9);
    22. System.out.println(i);//-8*/
    23. //先排序,之后再进行二分查找
    24. Collections.sort(list1);
    25. System.out.println(list1);
    26. int i1 = Collections.binarySearch(list1, 9);
    27. System.out.println(i1);//6
    28. }
    29. }