类Collections

简介

java.utils.Collections 是集合工具类,用来对集合进行操作。

部分功能

  • public static boolean addAll(Collection c, T... elements) :往集合中添加一些元素。
  • public static void shuffle(List list) 打乱顺序 :打乱集合顺序。
  • public static void sort(List list) :将集合中元素按照默认规则(从小到大升序)排序。

注意事项:如果要使用sort进行自定义的排序,必须实现comparable接口,重写接口中的compareTo定义排序规则,Comparable接口的排序规则

this- 参数 :升序

代码举例:

package demo04;

import demo03.Person;

// 继承Comparable 接口,接口的泛型要和继承的类一致
public class Student implements Comparable<Student> {
    private int age;

    public Student(int age) {
        this.age = age;
    }

    //构造方法
    public Student() {
    }

    public int getAge() {
        return age;
    }

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

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


    @Override
    // 重写次方法,确定排序的规则
    public int compareTo(Student o) {
        //默认升序排序
        return this.getAge() - o.getAge();
    }
}

测试代码:

package demo04;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CollectionsTest {
    public static void main(String[] args) {
        // 创建集合
        List<Student> list = new ArrayList<Student>();
        //一次性添加多个元素
        Collections.addAll(list, new Student(17), new Student(14), new Student(144), new Student(47));
        System.out.println(list);
        // 打扰集合中的顺序
        Collections.shuffle(list);
        System.out.println(list);
        // sort 升序排序
        Collections.sort(list);
        System.out.println(list);

    }
}

执行结果

  • public static void sort(List list,Comparator ) :将集合中元素按照指定规则排 序。

简述Comparable和Comparator两个接口的区别。

Comparable:强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的compareTo方法
被称为它的自然比较方法。只能在类中实现compareTo()一次,不能经常修改类的代码实现自己想要的排序。实现
此接口的对象列表(和数组)可以通过Collections.sort(和Arrays.sort)进行自动排序,对象可以用作有序映射中
的键或有序集合中的元素,无需指定比较器。
Comparator强行对某个对象进行整体排序。可以将Comparator 传递给sort方法(如Collections.sort或
Arrays.sort),从而允许在排序顺序上实现精确控制。还可以使用Comparator来控制某些数据结构(如有序set或
有序映射)的顺序,或者为那些没有自然顺序的对象collection提供排序。

猜你喜欢

转载自www.cnblogs.com/wurengen/p/10870355.html