Collections

image

只能给单列集合批量添加。

image

点击查看代码
public class CollectionsDemo1 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        //1.批量添加元素
        System.out.println("---------------批量添加元素-----------------");
        Collections.addAll(list, "abc", "ert", "qwer", "asdf", "cvb", "abc");
        System.out.println(list);

        //2.打乱List集合顺序
        System.out.println("---------------打乱集合顺序-----------------");
        Collections.shuffle(list);
        System.out.println(list);

    }
}
点击查看代码
public class CollectionsDemo2 {
    public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<>();

        Collections.addAll(list1, 2, 5, 7, 3, 4, 1, 6, 9, 8, 0);
        System.out.println(list1);

        //1.排序
        System.out.println("---------------排序-----------------");
        Collections.sort(list1);
        System.out.println(list1);

        //2.根据制定规则排序
        System.out.println("------------指定规则排序--------------");
        Collections.sort(list1, (Integer o1, Integer o2) -> o2 - o1);
        System.out.println(list1);

        //3.以二分查找法查找元素
        //需要元素有序
        System.out.println("------------二分查找法--------------");
        ArrayList<Integer> list2 = new ArrayList<>();
        Collections.addAll(list2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
        System.out.println(Collections.binarySearch(list2, 7));
        System.out.println(Collections.binarySearch(list2, 2));
        System.out.println(Collections.binarySearch(list2, 5));

        //4.拷贝集合中的元素
        System.out.println("------------拷贝--------------");
        //把list3的内容拷贝到list4中
        //会覆盖原来的元素
        //注意点:如果list3的长度>list4的长度,方法会报错

        ArrayList<Integer> list3 = new ArrayList<>();
        Collections.addAll(list3, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

        ArrayList<Integer> list4 = new ArrayList<>();
        Collections.addAll(list4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        Collections.copy(list4, list3);
        System.out.println(list4);  // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0]

        //5.使用指定元素填充集合
        System.out.println("-------------使用指定元素填充集合-------------");
        ArrayList<Integer> list5 = new ArrayList<>();
        Collections.addAll(list5, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
        Collections.fill(list5, 100);
        System.out.println(list5);  //数组中的元素全部替换成了100

        //6.根据默认的自然排序获得最大/最小值
        System.out.println("-------------获得最大/最小值-------------");
        ArrayList<Integer> list6 = new ArrayList<>();
        Collections.addAll(list6, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
        System.out.println(Collections.max(list6));
        System.out.println(Collections.min(list6));

        //String默认按ascii码表排序
        //可以指定最大值最小值规则,例如按长度
        System.out.println("-------------获得最大/最小值-------------");
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list, "a", "aaa", "aa", "aaaa");
        System.out.println(Collections.max(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                //升序排列
                return o1.length() - o2.length();
            }
        }));

        //7.交换集合中指定位置的元素
        System.out.println("-------------交换位置-------------");
        ArrayList<Integer> list7 = new ArrayList<>();
        Collections.addAll(list7, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
        Collections.swap(list7, 3, 7);
        System.out.println(list7);  //[1, 2, 3, 8, 5, 6, 7, 4, 9, 10]

    }
}
posted @ 2025-09-05 16:04  lachii  阅读(6)  评论(0)    收藏  举报