java 對(duì)象數(shù)組排序
廢話不多說(shuō)直接奉上代碼先:
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(); //對(duì)象實(shí)例化,很重要
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<n;i++){
System.out.println(mice[i].weight+" "+mice[i].speed);
}
}
}
class Mouse implements Comparable{ //實(shí)現(xiàn)Comparable接口
int weight;
int speed;
public int compareTo(Object o){ //重寫(xiě)compareTo方法
Mouse m=(Mouse)o;
return weight>m.weight?1:(weight==m.weight?0:-1);
}
}
另附上Arrays.sort用法:
1. 數(shù)字排序 int[] intArray = new int[] { 4, 1, 3, -23 };
Arrays.sort(intArray);
輸出: [-23, 1, 3, 4]
2. 字符串排序,先大寫(xiě)后小寫(xiě) String[] strArray = new String[] { "z", "a", "C" };
Arrays.sort(strArray);
輸出: [C, a, z]
3. 嚴(yán)格按字母表順序排序,也就是忽略大小寫(xiě)排序 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. 忽略大小寫(xiě)反向排序 Case-insensitive reverse-order sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
Collections.reverse(Arrays.asList(strArray));
輸出: [z, C, a]
6、對(duì)象數(shù)組排序
要對(duì)一個(gè)對(duì)象數(shù)組排序 ,則要自己實(shí)現(xiàn)java.util.Comparator接口
例子:
Common_User[] userListTemp=new Common_User[temp.size()];
Arrays.sort(userListTemp, new PinyinComparator());
PinyinComparator 實(shí)現(xiàn)了Comparator接口,重寫(xiě)了compare方法,來(lái)告訴Arrays按照什么規(guī)則來(lái)比較兩個(gè)對(duì)象的大小。
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
Java使用wait() notify()方法操作共享資源詳解
這篇文章主要為大家詳細(xì)介紹了Java使用wait() notify()方法操作共享資源,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
深度優(yōu)先與廣度優(yōu)先Java實(shí)現(xiàn)代碼示例
這篇文章主要介紹了深度優(yōu)先與廣度優(yōu)先Java實(shí)現(xiàn)代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12
SpringMVC使用JsonView針對(duì)統(tǒng)一實(shí)體返回不同信息
這篇文章主要為大家介紹了SpringMVC使用JsonView針對(duì)統(tǒng)一實(shí)體返回不同信息,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
java工具類static靜態(tài)方法讀取yml配置過(guò)程
文章介紹了在工具類中獲取YAML配置時(shí)遇到的問(wèn)題,由于變量是靜態(tài)的,而Spring加載靜態(tài)方法比IOC容器早,導(dǎo)致無(wú)法直接使用@Value注解讀取YAML配置,從而讀取結(jié)果為null2024-11-11
JAVA 集成 PF4J 插件框架的應(yīng)用場(chǎng)景分析
PF4J是一個(gè)強(qiáng)大的Java插件框架,允許開(kāi)發(fā)者將應(yīng)用程序分解為可擴(kuò)展的模塊,本文介紹了PF4J的基本概念和如何在Java項(xiàng)目中集成,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-03-03
解決IDEA springboot"spring-boot-maven-plugin"報(bào)紅問(wèn)題
這篇文章主要介紹了解決IDEA springboot"spring-boot-maven-plugin"報(bào)紅問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
如何使用Spring RestTemplate訪問(wèn)restful服務(wù)
這篇文章主要介紹了如何使用Spring RestTemplate訪問(wèn)restful服務(wù),詳細(xì)的介紹了什么是RestTemplate以及簡(jiǎn)單實(shí)現(xiàn),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-10-10

