Collections集合工具类方法

Collections集合工具类方法

public static <T> boolean addAll(Collection<T> c,T...elements)往集合中添加一些元素

public static void shuffle(List<?> list) 打乱集合顺序

public class Demo03Collections {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        //往集合中添加多个元素
        /*list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");*/

		//往集合中添加一些元素
        Collections.addAll(list,"a","b","c","d","e");
        System.out.println(list);//[a, b, c, d, e]

        //打乱集合顺序
        Collections.shuffle(list);
        System.out.println(list);//[b, d, a, c, e],每次顺序都不一样
    }
}

public static <T> void sort(list <T> list):将集合中的元素按照默认规则排序。
使用前提:如果被排序的集合里边存储的元素是自定义类型,必须实现Comparable,重写接口在的方法compareTo定义排序的规则

package C0llections;

public class Person implements Comparable<Person>{
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
	//重写排序规则
    @Override
    public int compareTo(Person o) {
        //return 0;认为元素都是相同的
        //自定义比较的规则,比较两个人的年龄(this.参数Person)
         return this.getAge()-o.getAge();//年龄升序排序
        //return o.getAge()-this.getAge();//年龄降序排序
    }
}//省略Getter/Setter方法
public class Demo02Sort {
    public static void main(String[] args) {
        ArrayList<Integer> list01 = new ArrayList<>();
        Collections.addAll(list01,1,3,2);
        System.out.println(list01);//[1, 3, 2]
        //将集合中元素按照默认顺序排序
        Collections.sort(list01);
        System.out.println(list01);//[1, 2, 3]

        ArrayList<String> list02 = new ArrayList<>();
        Collections.addAll(list02,"a","c","d","b");
        System.out.println(list02);//[a, c, d, b]
        Collections.sort(list02);
        System.out.println(list02);//[a, b, c, d]
        
        ArrayList<Person> list03 = new ArrayList<>();
        list03.add(new Person("张三",12));
        list03.add(new Person("李四",165));
        list03.add(new Person("王五",19));
        System.out.println(list03);//[Person{name='张三', age=12}, Person{name='李四', age=165}, Person{name='王五', age=19}]
        Collections.sort(list03);
        System.out.println(list03);
        /*[Person{name='张三', age=12}, 
          Person{name='王五', age=19}, 
          Person{name='李四', age=165}]*/
    }
}

public static <T> void sort(List<T> list,Comparator<?super T>):将集合中元素按指定规则排序。

Comparator和Comparable区别:
Comparator:相当于找一个第三方的裁判,比较两个。
Comparable:自己(this)和别人(参数)比较,自己需要实现Comparable接口,重写比较的规则compareTo方法。

public class Sort {
    public static void main(String[] args) {
        ArrayList<Integer> list01 = new ArrayList<>();
        Collections.addAll(list01,1,1,3,2);
        System.out.println(list01);//[1, 1, 3, 2]

        Collections.sort(list01, new Comparator<Integer>() {
            //重写比较规则
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1-o2;//升序
            }
        });
        System.out.println(list01);//[1, 1, 2, 3]
    }
}
posted @ 2021-07-28 13:46  咸蛋白  阅读(31)  评论(0)    收藏  举报