java对象数组排序_java 对象数组排序
废话不多说直接奉上代码先:
import java.util.*;
import java.io.*;
public class Main{
static int [] dp = new int [1010];
public static void main(String [] args)throws IOException{
Mouse [] mice = new Mouse [1010];
FileReader fr=new FileReader("in.txt"); //读取文件
BufferedReader read = new BufferedReader(fr);
String str = "";
int n=1;
while((str = read.readLine())!=null){
String [] s= str.split(" ");
mice[n] = new Mouse(); //对象实例化,很重要
mice[n].weight = Integer.parseInt(s[0]);
mice[n].speed =Integer.parseInt(s[1]);
n++;
}
System.out.println(n);
Arrays.sort(mice,1,n); //sort(int start,int end) 包括start索引,不包括end索引
for(int i=1;i
System.out.println(mice[i].weight+" "+mice[i].speed);
}
}
}
class Mouse implements Comparable{ //实现Comparable接口
int weight;
int speed;
public int compareTo(Object o){ //重写compareTo方法
Mouse m=(Mouse)o;
return weight>m.weight?1:(weight==m.weight?0:-1);
}
}
另附上Arrays.sort用法:
1. 数字排序int[] intArray = new int[] { 4, 1, 3, -23 };
Arrays.sort(intArray);
输出: [-23, 1, 3, 4]
2. 字符串排序,先大写后小写 String[] strArray = new String[] { "z", "a", "C" };
Arrays.sort(strArray);
输出: [C, a, z]
3. 严格按字母表顺序排序,也就是忽略大小写排序 Case-insensitive sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
输出: [a, C, z]
4. 反向排序, Reverse-order sort
Arrays.sort(strArray, Collections.reverseOrder());
输出:[z, a, C]
5. 忽略大小写反向排序 Case-insensitive reverse-order sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
Collections.reverse(Arrays.asList(strArray));
输出: [z, C, a]
6、对象数组排序
要对一个对象数组排序 ,则要自己实现java.util.Comparator接口
例子:
Common_User[] userListTemp=new Common_User[temp.size()];
Arrays.sort(userListTemp, new PinyinComparator());
PinyinComparator 实现了Comparator接口,重写了compare方法,来告诉Arrays按照什么规则来比较两个对象的大小。
以上所述就是本文的全部内容了,希望大家能够喜欢。
java对象数组排序_java 对象数组排序相关推荐
- java list对象排序_Java 对象集合List排序的5种方式
目标明确 排序对象类 public class Student{ private String name; private Integer age; public Student(String nam ...
- java初始化实例化_Java对象的创建过程:类的初始化与实例化
一.Java对象创建时机 我们知道,一个对象在可以被使用之前必须要被正确地实例化.在Java代码中,有很多行为可以引起对象的创建,最为直观的一种就是使用new关键字来调用一个类的构造函数显式地创建对象 ...
- java 对象复活_Java对象复活
java 对象复活 总览 收集覆盖了finalize()的对象之后,将其添加到终结处理队列中,以在调用每个对象的finalize()方法之后进行清理. 如果您复活了物体,会发生什么? 何时定案? fi ...
- java jol原理_Java对象布局(JOL)实现过程解析
java对象布局JOL(java object layout),描述对象在堆内存的布局.如下图: 1.markword 固定长度8byte,描述对象的identityhashcode,分代年龄,锁信息 ...
- java开源对象池_JAVA 对象池
GenericObjectPool利用一个org.apache.commons.collections.CursorableLinkedList对象来保存对象池里的对象.这种对象池的特色是: 可以设定 ...
- java 对象结构_java对象的结构
在Hotspot JVM中,32位机器下,Integer对象的大小是int的几倍? 我们都知道在Java语言规范已经规定了int的大小是4个字节,那么Integer对象的大小是多少呢? 要知道一个对象 ...
- java浅度克隆_java对象 深度克隆(不实现Cloneable接口)和浅度克隆
为什么需要克隆: 在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说 ...
- java中对象类型转换_Java 对象类型的转换
对象类型的转换在Java编程中经常遇到,主要分为向上转型和向下转型,但一定要记住,无论是向上转型还是向下转型,两个类之间必须有继承关系.先来看看基本概念. 向上转型又被称作自动类型转换,就是子类引用的 ...
- java对象排序_java对象排序(Comparable)详细实例
对象实现Comparable接口 package collections.sort.comparable; public class Field implements Comparable{ priv ...
- java c 流_java对象传输流C/S传输对象
java对象传输流C/S传输对象 java中有一个对象输入输出流,它可以包装普通的字节流. 我用一个C/S模式来测试练习对象输入输出流. 创建对象输入输出流包装基本字节流时遇到了第一个问题: 服务器创 ...
最新文章
- linux中sh+$0,浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释
- git 从入门到精通
- python怎么用matplotlib_Python-如何在matplotlib中更新图?
- Logistic回归 python实现
- Python学习笔记:利用sorted()函数对序列排序
- 期货价格与即期价格?
- 解密深圳IT人士的当前薪情【转自:中国it实验室】
- ‘Staff‘ object has no attribute ‘data‘
- 44万条数据揭秘:如何成为网易云音乐评论区的网红段子手?
- R语言绘制带误差和可信区间的折线图
- 散点图矩阵 pd.plotting.scatter_matrix
- Gateway原理及实例
- 网站服务器端口扫描,服务器端口扫描工具
- 应用程序 iis 中的服务器错误,unhandled-exception
- Office 365中Word转成PDF
- 朝鲜打造尖端技术开发区 欲将开城变“硅谷”
- Android音频子系统(十三)------audio音频测试工具
- 初识OpenVINO
- 标题 Python生成二维码和解码
- python绘制神经网络结构图,如何画神经网络结构图