Collections中的sort方法,对集合内容进行排序

/*
    Collections 中有一个方法叫做sort可以对集合中的内容进行排序
    static void sort​(List list): 对集合中的内容进行排序

    要使用这个sort方法进行排序的集合,里面的泛型必须实现Comparable接口

    实现这个接口的对象才具备排序的功能, 这种排序自然排序。

    口诀:
    升序就是我减他,降续就是他减我

 */
举例:
public class Demo02Collections {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();//String 里面实现了Compareable接口,重写了compare to 放法
        Collections.addAll(list, "aa", "bb", "cc", "dd", "bb");
        System.out.println(list);
        Collections.sort(list);//
        System.out.println(list);
        //定义集合保存数字
        ArrayList<Integer> list1 = new ArrayList<>();
        Collections.addAll(list1, 20, 30, 40, 5, 8, 1, 4, 10);
        Collections.sort(list1);
        System.out.println(list1);
        //定义集合保存Person
   ArrayList<Person> list3 = new ArrayList<Person>()泛型 Person必须实现Comparable接口
 
      在排序的时候,会使用某个对象调用这个compareTo方法和另一个对象进行比较。
       返回值等于0,表示当前对象和另一个对象是相同的。
       返回值小于0,表示当前对象小于指定的对象
       返回值大于0,表示当前对象大于指定的对象。
       口诀
       升序就是我减他,降续就是他减我
    */
public class Person implements Comparable<Person> {
    private String name;
    private  int age;

    @Override//降序
    public int compareTo(Person o) {
        return o.getAge()-this.getAge();
    }
//    @Override
//    public int compareTo(Person o) {
//        return this.getAge()-o.getAge();//升序
//    }

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

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

    public Person(String name, int age) {

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

    public Person() {

    }
}

list3.add( new Person( " 大幂幂 ", 19)); list3.add( new Person( " 小波波 ", 18)); Collections. addAll(list3, new Person( " 大柳岩 ", 17), new Person( " 小屁孩 ", 22)); System. out.println(list3); Collections.sort(list3); System. out.println(list3); }}
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值