Collections

里面提供了大量操作集合的方法

一些方法举例:

 

public class Method01 {
    /*
    1.public static <T> booolean addAll(Collections<T> c , T...elements)
    往集合中添加一些元素;
    2.public static void shuffle(List<?> list)
    打乱集合顺序;
    */
    public static  void main(String[] args){
        ArrayList<Integer>  list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        System.out.println(list);//[1, 2, 3]

        Collections.addAll(list,4,5,6,7);
        System.out.println(list);//[1, 2, 3, 4, 5, 6, 7]

        Collections.shuffle(list);
        //System.out.println(list);//[2, 5, 1, 6, 7, 4, 3]
        System.out.println(list);//[5, 6, 1, 7, 2, 3, 4]
    }
}

 

 

public class Method02 {
    /*
    1.public static <T> void sort(List<T> list);
    按照默认规则升序排列
     */
    public static  void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
       Collections.addAll(list,4,8,1,6,9,2);
       Collections.sort(list);
        System.out.println(list);//[1, 2, 4, 6, 8, 9]

        //对自定义类型进行排序
       ArrayList<Student>  list2 = new ArrayList<>();
        Collections.addAll(list2,new Student("小明",1),
                new Student("小红",2),new Student("小强",3),
                new Student("丽丽",3),new Student("大虎",5));
        Collections.shuffle(list2);
        Collections.sort(list2);
        System.out.println(list2);

    }
}
class Student implements Comparable<Student>{

    /*
    想要对自定义的方法用Collections中的sort方法进行排序,需要实现Compareable接口,
    并重写compareTo方法
     */
    @OVerride
    public int compareTo(Student o) {

        int result =this.age-o.getAge();//先按年龄升序排列
        if(result==0){//如果年龄相同,按姓名首字母排列
            result = this.getName().charAt(0)-o.getName().charAt(0);
        }
        return result;
    }
}
    
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int num) {

        this.name = name;
        this.age = num;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", num=" +age +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int num) {
        this.age= num;
    }

  

 

 

public class Method3 {
    public static void main(String[] args) {
        /*
        public static <T> void sort(List<?> list , Compretor<? super T>)
        将集合按照制定规则进行排序,指定规则在Compretor接口中定义(使用匿名内部类+匿名对象)
         */
        ArrayList<Student> list2 = new ArrayList<>();
        Collections.addAll(list2,new Student("小明",1),
                new Student("小红",2),new Student("小强",3),
                new Student("丽丽",3),new Student("大虎",5));
        Collections.shuffle(list2);
        Collections.sort(list2, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                return o1.getAge()-o2.getAge();
            }
        });
        Iterator it = list2.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
    }
}

 

posted @ 2020-10-25 20:58  素色学习  阅读(302)  评论(0)    收藏  举报