Java基础——Arrays类的排序方法
1.Arrays类的排序方法:
public static void sort(类型[] a) //对数组进行默认升序排序
public static <T> void sort(类型[] a, Comparator<?suprt T > c) //使用比较器对象自定义排序
2.自定义排序规则:设置Comparator接口对应的比较器对象,来制定比较规则。
- 如果认为左边数据 大于 右边数据,返回正整数(返回1);
- 如果认为左边数据 小于 右边数据,返回负整数(返回-1);
- 如果认为左边数据 等于 右边数据,返回0;
返回1 | 交换顺序 |
返回-1 | 不交换顺序 |
返回0 | 不交换顺序 |
3.案例实战:
import java.util.Arrays;
import java.util.Comparator;/*** Comparator比较对象*/
public class ArraysDemo {public static void main(String[] args) {//1.Arrays的sort方法对于有值特性的数组是默认升序排序int[] ages = {34,12,42,23};Arrays.sort(ages);System.out.println(Arrays.toString(ages));//2.降序排序(自定义比较器对象,只支持引用类型的排序)Integer[] ages1 = {34,12,42,23};/*参数一:被排序的数组,必须是引用类型的元素参数二:匿名内部类对象,代表一个比较器对象*/Arrays.sort(ages1, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {
// return o1-o2;//默认升序return o2-o1;//默认降序-(o1-o2)}});System.out.println(Arrays.toString(ages1));System.out.println("-------------------------------");Student[] students = new Student[3];students[0] = new Student("小花",23,157.5);students[1] = new Student("小星",21,167.5);students[2] = new Student("小清",20,177.5);System.out.println(Arrays.toString(students));//对int型的年龄排序Arrays.sort(students, new Comparator<Student>() {@Overridepublic int compare(Student o1, Student o2) {return o1.getAge()-o2.getAge();//升序排序}});System.out.println(Arrays.toString(students));//对double型的身高排序Arrays.sort(students, new Comparator<Student>() {@Overridepublic int compare(Student o1, Student o2) {return Double.compare(o1.getHeight(), o2.getHeight());}});System.out.println(Arrays.toString(students));}}class Student{private String name;private int age;private double height;public Student() {}public Student(String name, int age, double height) {this.name = name;this.age = age;this.height = height;}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 double getHeight() {return height;}public void setHeight(double height) {this.height = height;}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +", height=" + height +'}';}
}
Java基础——Arrays类的排序方法相关推荐
- Java基础——Arrays类
每日正能量 如果你要做一件事,不要到处宣言自己的想法,只管安安静静地去做,值不值,时间是最好的证明,自己的人生,得自己负责. Arrays类 JDK中提供了一个专门用于操作数组的工具类,即Arrays ...
- Java基础Object类的equals方法
关于Object类中的equals方法 1.equals方法的源代码 public boolean equals(Object obj) {return (this == obj);}以上这个方法是O ...
- java基础—Date类的常见方法演示
Date 中的常用方法演示 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleD ...
- Java基础Object类的finalize方法
1.在Object类中的源代码: protected void finalize() throws Throwable { } GC:负责调用finalize()方法. 2.finalize()方法只 ...
- Java基础Object类的hashCode方法
hashCode方法: 在Object中的hashCode方法是怎样的? public native int hashCode(); 这个方法不是抽象方法,带有native关键字,底层调用C++程序. ...
- Java基础18-String类【String类的特点对象个数常用方法】【超详细讲解】
Java基础-String类[超详细讲解] String类的特点 String在java.lang.String包中 1:特点 (1)String类型不能被继承,因为由final修饰 (2)Strin ...
- java的知识点17——java.util.Arrays类、多维数组
java.util.Arrays类 Arrays类包含了:排序.查找.填充.打印内容等常见的操作. 打印数组 package cn.dym08; import java.util.Arrays;pub ...
- java中的五种排序方法_用Java排序的五种有用方法
java中的五种排序方法 Java排序快速概述: 正常的列表: private static List VEGETABLES = Arrays.asList("apple", &q ...
- java.util 1.8_JDK1.8源码(四)——java.util.Arrays 类
java.util.Arrays 类是 JDK 提供的一个工具类,用来处理数组的各种方法,而且每个方法基本上都是静态方法,能直接通过类名Arrays调用. 1.asList public static ...
最新文章
- 计图(Jittor) 1.1版本:新增骨干网络、JIT功能升级、支持多卡训练
- IIRF重写在asp.net4.0+IIS6中部分失败的解决方案
- javarxtx串口接收时数据会分成好几段_【STM32】串口通信基本原理(超基础、详细版)...
- oracle编程艺术笔记1
- KMM Kotlin expect的几种声明方式
- 关于A+B+C问题4种语言的解决办法,Java、C语言、C++、Python
- 演讲《云图,让阅读更精彩(Better Cloudary™, Better Reading)》
- ANDROID事件触发机制
- Insert增加数据
- 在vue项目中导入element-ui
- arm 基于qcamera实现_基于Arm平台的研华EPC—R4680工控机实现快速储物柜智能解决方案...
- php薪资图表,加薪利器,老板再也不用担心生成图表图片了
- 男人想要成功--必须明白的22个道理
- 计算机硬盘扇区修复,如何修复Windows中的“硬盘坏扇区”
- UI设计课EDC研究所1期 Part 9 -“特殊的字体”
- MongoDB下载、安装和配置教程
- python中screen用法_screen的用法
- 区块链应用在网络安全的六个案例
- maximo跟java_Maximo7.5远程调用maximo的手动输入节点工作流
- 元宇宙并不是区块链的延伸 因为区块链并未跳出虚拟的牵绊
热门文章
- 蹲草丛-dfs或者bfs找最小的连着草丛i
- 如何把视频嵌入PPT合为一个文件
- 【邻接矩阵乘法】沼泽鳄鱼
- matlab s-function找不到
- 如何嫁给年入百万的阿里人?
- Bandwagon安装禅道记录
- 错误	C2248	“Bus::operator ()”: 无法访问 private 成员(在“Bus”类中声明)
- 三层交换机与单臂路由的优缺点
- 15.学习Camera之——camera理论基础和工作原理
- 聊聊追求测试技术导致过度测试