资讯专栏INFORMATION COLUMN

Collections工具类方法sort二

mykurisu / 850人阅读

摘要:是集合工具类,用来对集合进行操作。部分方法如下,将集合中元素按照指定规则排序。

package com.itheima.demo05.Collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

/*

- java.utils.Collections是集合工具类,用来对集合进行操作。部分方法如下:
    public static  void sort(List list,Comparator ):将集合中元素按照指定规则排序。

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

Comparator的排序规则:
    o1-o2:升序

*/
public class Demo03Sort {

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

    Collections.sort(list01, new Comparator() {
        //重写比较的规则
        @Override
        public int compare(Integer o1, Integer o2) {
            //return o1-o2;//升序
            return o2-o1;//降序
        }
    });

    System.out.println(list01);

    ArrayList list02 = new ArrayList<>();
    list02.add(new Student("a迪丽热巴",18));
    list02.add(new Student("古力娜扎",20));
    list02.add(new Student("杨幂",17));
    list02.add(new Student("b杨幂",18));
    System.out.println(list02);

    /*Collections.sort(list02, new Comparator() {
        @Override
        public int compare(Student o1, Student o2) {
            //按照年龄升序排序
            return o1.getAge()-o2.getAge();
        }
    });*/

    //扩展:了解
    Collections.sort(list02, new Comparator() {
        @Override
        public int compare(Student o1, Student o2) {
            //按照年龄升序排序
            int result =  o1.getAge()-o2.getAge();
            //如果两个人年龄相同,再使用姓名的第一个字比较
            if(result==0){
                result =  o1.getName().charAt(0)-o2.getName().charAt(0);
            }
            return  result;
        }

    });

    System.out.println(list02);
}

}

package com.itheima.demo05.Collections;

public class Student {

private String name;
private int age;

public Student() {
}

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

@Override
public String toString() {
    return "Student{" +
            "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;
}

}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75163.html

相关文章

  • 容器之Collections工具源码分析(重点)()

    摘要:容器相关的操作及其源码分析说明本文是基于分析的。有哪些抽取出来的工具类。即对于反转方式如下替换值查找在出现的最小位置。查找在出现的最大位置。即返回的和原在元素上保持一致,但不可修改。 容器相关的操作及其源码分析 说明 1、本文是基于JDK 7 分析的。JDK 8 待我工作了得好好研究下。Lambda、Stream。 2、因为个人能力有限,只能以模仿的形式+自己的理解写笔记。如有不对的...

    acrazing 评论0 收藏0
  • Collections工具方法sort

    摘要:是集合工具类,用来对集合进行操作。部分方法如下将集合中元素按照默认规则排序。注意使用前提被排序的集合里边存储的元素必须实现重写接口中的方法定义排序的规则接口的排序规则自己参数升序将集合中元素按照默认规则排序。 package com.itheima.demo05.Collections; import java.util.ArrayList;import java.util.Colle...

    molyzzx 评论0 收藏0
  • java-工具Collections和Arrays的设计和区别

    摘要:排序的算法是归并排序。举个例子,的算法可以不是使用归并排序,但是该算法一定要是稳定的。这个类是的一部分。官方这个类只包含操作或返回集合的静态方法。具体来说是,第一步,先把集合转换为数组,第二步,调用。和没有什么区别,只是传参有点不同。 Arrays 1.作用看类的名字,就知道是对数组(数据类型[])进行各种操作。例如,排序、查找、复制等。 排序的算法是归并排序。查找的算法是二分查找。复...

    mj 评论0 收藏0
  • 前百度面试官整理的——Java后端面试题(

    摘要:另外,还可以调用和等很便利的方法,以返回表示字段,方法,以及构造器的对象的数组。运行结果无参构造器有参构造器和实现原理和区别和区别是一个集合接口。 对象的四种引用 强引用只要引用存在,垃圾回收器永远不会回收 showImg(https://segmentfault.com/img/bVbsYsz?w=652&h=52); 可直接通过obj取得对应的对象 如 obj.equels(new...

    thekingisalwaysluc 评论0 收藏0
  • Java 集合 Collections工具

    摘要:提供了一个操作和等集合的工具类,该工具类提供了大量方法对集合进行排序查询和修改等操作,还提供了将集合对象置为不可变对集合对象实现同步控制等方法排序操作反转指定集合中元素的顺序对集合元素进行随机排序方法模拟了洗牌动作根据元素的自然顺序对指定集 Java提供了一个操作Set、List和Map等集合的工具类:Collections,该工具类提供了大量方法对集合进行排序、查询和修改等操作,还提...

    qieangel2013 评论0 收藏0

发表评论

0条评论

mykurisu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<