摘要:是集合工具类,用来对集合进行操作。部分方法如下,将集合中元素按照指定规则排序。
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
摘要:容器相关的操作及其源码分析说明本文是基于分析的。有哪些抽取出来的工具类。即对于反转方式如下替换值查找在出现的最小位置。查找在出现的最大位置。即返回的和原在元素上保持一致,但不可修改。 容器相关的操作及其源码分析 说明 1、本文是基于JDK 7 分析的。JDK 8 待我工作了得好好研究下。Lambda、Stream。 2、因为个人能力有限,只能以模仿的形式+自己的理解写笔记。如有不对的...
摘要:是集合工具类,用来对集合进行操作。部分方法如下将集合中元素按照默认规则排序。注意使用前提被排序的集合里边存储的元素必须实现重写接口中的方法定义排序的规则接口的排序规则自己参数升序将集合中元素按照默认规则排序。 package com.itheima.demo05.Collections; import java.util.ArrayList;import java.util.Colle...
摘要:排序的算法是归并排序。举个例子,的算法可以不是使用归并排序,但是该算法一定要是稳定的。这个类是的一部分。官方这个类只包含操作或返回集合的静态方法。具体来说是,第一步,先把集合转换为数组,第二步,调用。和没有什么区别,只是传参有点不同。 Arrays 1.作用看类的名字,就知道是对数组(数据类型[])进行各种操作。例如,排序、查找、复制等。 排序的算法是归并排序。查找的算法是二分查找。复...
摘要:另外,还可以调用和等很便利的方法,以返回表示字段,方法,以及构造器的对象的数组。运行结果无参构造器有参构造器和实现原理和区别和区别是一个集合接口。 对象的四种引用 强引用只要引用存在,垃圾回收器永远不会回收 showImg(https://segmentfault.com/img/bVbsYsz?w=652&h=52); 可直接通过obj取得对应的对象 如 obj.equels(new...
摘要:提供了一个操作和等集合的工具类,该工具类提供了大量方法对集合进行排序查询和修改等操作,还提供了将集合对象置为不可变对集合对象实现同步控制等方法排序操作反转指定集合中元素的顺序对集合元素进行随机排序方法模拟了洗牌动作根据元素的自然顺序对指定集 Java提供了一个操作Set、List和Map等集合的工具类:Collections,该工具类提供了大量方法对集合进行排序、查询和修改等操作,还提...
阅读 2645·2023-04-26 01:44
阅读 2721·2021-09-10 10:50
阅读 1505·2019-08-30 15:56
阅读 2467·2019-08-30 15:44
阅读 583·2019-08-29 11:14
阅读 3496·2019-08-26 11:56
阅读 3092·2019-08-26 11:52
阅读 1000·2019-08-26 10:27
极致性价比!云服务器续费无忧!
Tesla A100/A800、Tesla V100S等多种GPU云主机特惠2折起,不限台数,续费同价。
NVIDIA RTX 40系,高性价比推理显卡,满足AI应用场景需要。
乌兰察布+上海青浦,满足东推西训AI场景需要