最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java自帶排序使用

 更新時間:2022年01月25日 09:21:56   作者:wow_awsl_qwq  
這篇文章主要給大家分享了java自帶排序使用,該方法是升序排序,方法的內(nèi)部采用了快排實現(xiàn),但該方法是?穩(wěn)定的。下面一起來看看文章的詳細介紹吧

基本類型排序:

int a[]={1,2,5,3,6,4};
Arrays.sort(a);//對a升序排序
Arrays.sort(a,0,6);//對a從下標0,到下標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ù)組從下標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.fzitv.net/article/232347.htm

比較邏輯:

  • o1 < o2 ---- 返回負數(shù)
  • o1 = o2 ---- 返回 0
  • o1 > o2 ---- 返回正數(shù)

人都繞暈了。。。

理一下思路:

排序函數(shù)默認從小到大排序
那么怎么界定誰大誰小呢,給排序函數(shù)一個比較函數(shù)

那么比較函數(shù)已經(jīng)有兩個參數(shù)了,怎么表示o1,o2的大小關(guān)系呢?

就是邏輯如下:

o1  <  o2   ---- 返回負數(shù)
o1  =  o2   ---- 返回 0
o1  >  o2   ---- 返回正數(shù)

  • 返回負數(shù)表示o1<o2
  • 返回0 表示相等
  • 返回正數(shù)表示o1>o2

要把排序函數(shù)和比較函數(shù)分離開

他們是獨立實現(xiàn)功能的函數(shù),只要保證他們自己的正確即可

寫比較函數(shù)需要做的就是:

  • 在o1<o2時返回負數(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)文章

最新評論

高密市| 敦化市| 兰州市| 苗栗市| 桃源县| 彭山县| 易门县| 巴青县| 昌乐县| 富裕县| 应用必备| 施秉县| 赤壁市| 南昌市| 高碑店市| 康平县| 福鼎市| 阿克| 荥阳市| 钦州市| 普陀区| 彩票| 隆子县| 东乌| 沁源县| 怀远县| 页游| 醴陵市| 涞源县| 丰县| 沂南县| 天祝| 连城县| 安泽县| 红原县| 巴林右旗| 新竹市| 鄂伦春自治旗| 顺义区| 无极县| 平陆县|