java自帶排序使用
基本類型排序:
int a[]={1,2,5,3,6,4};
Arrays.sort(a);//對a升序排序
Arrays.sort(a,0,6);//對a從下標(biāo)0,到下標(biāo)5排序
自定義類型排序:
static Student b[]=new Student [4];
for(int i=0;i<4;++i)b[i]=new Student("str", 4-i);
Arrays.sort(b,new Mcompeter());//對數(shù)組所有元素排序,Comparator可以用實例,也可以匿名對象
Arrays.sort(b,0,4,new Mcompeter());//對數(shù)組從下標(biāo)0到3排序
static class Student {
public String name;
public int age;
public Student(String name,int age){
this.name = name;
this.age = age;
}
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}
static class Mcompeter implements Comparator<Student>
{
@Override
public int compare(Student o1, Student o2) {
// TODO 自動生成的方法存根
if(o1.name.compareTo(o2.name)==0)
{
return o1.age-o2.age;
}
else return o1.name.compareTo(o2.name);
}
}

比較函數(shù)的寫法:
參考:http://www.dbjr.com.cn/article/232347.htm
比較邏輯:
- o1 < o2 ---- 返回負(fù)數(shù)
- o1 = o2 ---- 返回 0
- o1 > o2 ---- 返回正數(shù)
人都繞暈了。。。
理一下思路:
排序函數(shù)默認(rèn)從小到大排序
那么怎么界定誰大誰小呢,給排序函數(shù)一個比較函數(shù)
那么比較函數(shù)已經(jīng)有兩個參數(shù)了,怎么表示o1,o2的大小關(guān)系呢?
就是邏輯如下:
o1 < o2 ---- 返回負(fù)數(shù)
o1 = o2 ---- 返回 0
o1 > o2 ---- 返回正數(shù)
- 返回負(fù)數(shù)表示o1<o2
- 返回0 表示相等
- 返回正數(shù)表示o1>o2
要把排序函數(shù)和比較函數(shù)分離開
他們是獨立實現(xiàn)功能的函數(shù),只要保證他們自己的正確即可
寫比較函數(shù)需要做的就是:
- 在o1<o2時返回負(fù)數(shù)
- 在o1=o2時返回0
- 在o1>o2時返回整數(shù)
其中的"<"和“>”不一定是真實數(shù)值意義上的小于和大于,而是你希望的小于和大于。
比如o1 o2都為int
if(o1>o2) return -1;
那么o1的值比o2大就是我定義的“小于”
到此這篇關(guān)于java自帶排序使用的文章就介紹到這了,更多相關(guān)java自帶排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java Arrays快速打印數(shù)組的數(shù)據(jù)元素列表案例
這篇文章主要介紹了java Arrays快速打印數(shù)組的數(shù)據(jù)元素列表案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
IDEA通過git回滾到某個提交節(jié)點或某個版本的操作方法
這篇文章主要介紹了IDEA通過git回滾到某個提交節(jié)點或某個版本的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
Spring MVC---數(shù)據(jù)綁定和表單標(biāo)簽詳解
本篇文章主要介紹了Spring MVC---數(shù)據(jù)綁定和表單標(biāo)簽詳解,具有一定的參考價值,有興趣的可以了解一下。2017-01-01
Springboot整合多數(shù)據(jù)源代碼示例詳解
這篇文章主要介紹了Springboot整合多數(shù)據(jù)源代碼示例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08
Spring?boot2.0?實現(xiàn)日志集成的方法(3)
這篇文章主要介紹了Spring?boot2.0?實現(xiàn)日志集成的方法,基于上一篇將日志信息根據(jù)類別輸出到不同的文件中,這篇文章將通過日志來監(jiān)控用戶的操作行為、請求的耗時情況,針對耗時久的請求進(jìn)行性能分析,提升系統(tǒng)性能,需要的小伙伴可以參考一下2022-04-04

