目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

X

Collections工具类

Collections

 Java⾥关于集合的 ⼯具类,包含有各种有关集合操作的静态多态 ⽅法,不能实例化(把构造函 数私有化)。

Collection 与 Collections 区别

  • Collection 是接 ⼝,提供了对集合对象进 ⾏基本操作的通 ⽤接 ⼝ ⽅法,List、Set 等多种具体的 实现类。
  • Collections 是 ⼯具类,专 ⻔操作 Collection 接 ⼝实现类 ⾥ ⾯的元素。

常见方法

排序

@Test
    public void collectionsIteratorTesting() {
        ArrayList<String> list = new ArrayList<>();
        list.add("bbb");
        list.add("aaa");
        list.add("ccc");
        System.out.println(list);////不指定排序,默认按照自然升序排序 [aaa, bbb, ccc]
        Collections.sort(list,Comparator.naturalOrder()); //升序  [aaa, bbb, ccc]
        Collections.sort(list,Comparator.reverseOrder()); //降序  [ccc, bbb, aaa]
	Collections.shuffle(list);//随机排序
        System.out.println(list); 
    }

获取最值 max/min

//初始化容器
        ArrayList<Student> list = new ArrayList<>();
        list.add(new Student("a",15));
        list.add(new Student("b",18));
        list.add(new Student("c",12));

        //获取最大元素
        Student maxStudent = Collections.max(list, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                return o1.getAge() - o2.getAge();
            }
        });
        System.out.println(maxStudent);//Student(name=b, age=18)

        //获取最小元素
        Student minStudent = Collections.min(list, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                return o1.getAge() - o2.getAge();
            }
        });
        System.out.println(minStudent);//Student(name=c, age=12)
    }

创建不可变集合

public void collectionsUnmodifiableTesting() {
        //创建不可变集合List
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list = Collections.unmodifiableList(list);

        //创建不可变集合Set
        Set<String> set = new HashSet<>();
        set.add("a");
        set.add("b");
        set.add("c");
        set = Collections.unmodifiableSet(set);

        //创建不可变Map
        Map<String, String> map = new HashMap<>();
        map.put("a", "jack");
        map.put("b", "alice");
        map.put("c", "Tom");
        map = Collections.unmodifiableMap(map);
    }

作者:Soulboy