1. 程式人生 > >Java的Comparable介面&比較器原理

Java的Comparable介面&比較器原理

對需要進行排序的物件實現Comparable介面,重寫其中的compareTo(T o)方法,在其中定義排序規則,那麼就可以直接呼叫java.util.Arrays.sort()來排序物件陣列
需求:設計一個學生類, 屬性有姓名,年齡, 成績,併產生一個數組,要去安裝成績從高到低,如果成績相等則有年齡有第到高排序。

import java.util.Arrays;
class Student implements Comparable<Student>{
    private String name;
    private int age;
    private float
score; public Student(String name, int age, float score) { this.name = name; this.age = age; this.score = score; } public String toString() { return name + " " + age + " " + score; } public int compareTo(Student stu) { if(this.score > stu.score) { return
-1; } else if(this.score < stu.score) { return 1; } else { if(this.age > stu.age) { return 1; } else if(this.age < stu.age) { return -1; } else { return 0; } } } } public
class ComparableDemo { public static void main(String[] args) { Student students[] = {new Student("張三", 20, 90.0f), new Student("李四", 22, 90.0f), new Student("王五", 20, 99.0f), new Student("趙六", 20, 70.0f), new Student("孫七", 22, 100.0f)}; Arrays.sort(students); for (Student stu: students) { System.out.println(stu); } } }

下面是Arrays類一些方法的demo, 點選Arrays類檢視其方法的宣告.

public class ArraysDemo {
    public static void main(String[] args) {
        int temp[] = {3, 5, 7, 9, 1, 2, 6, 8};
        Arrays.sort(temp);
        System.out.print("排序後的結果:");
        System.out.println(Arrays.toString(temp));
        int point = Arrays.binarySearch(temp, 3); 
        System.out.println("元素3的位置在: " + point);
        Arrays.fill(temp, 0);
        System.out.println("陣列填充:" + Arrays.toString(temp));

    }
}

相關推薦

Java的Comparable介面&比較原理

對需要進行排序的物件實現Comparable介面,重寫其中的compareTo(T o)方法,在其中定義排序規則,那麼就可以直接呼叫java.util.Arrays.sort()來排序物件陣列 需求:設計一個學生類, 屬性有姓名,年齡, 成績,併產生一個數組,

Comparator比較介面使用原理

java.util.Comparator是比較器介面,如果我們需要控制某個類的次序並且該類本身不支援排序,那麼就可以建立一個類比較器來進行排序,實現方式很簡單隻需要實現java.util.Comparator介面。 java.util.Comparator介面只包括兩個函式

java:集合框架(TreeSet保證元素唯一和比較排序的原理及程式碼實現)

* A:案例演示     * TreeSet保證元素唯一和比較器排序的原理及程式碼實現 按照字串長度排序 重寫了Comparator介面中的方法 class CompareByLen implem

暈!常見視訊介面轉接原理簡析

https://www.bilibili.com/read/cv277138 數碼 3-9 546閱讀24點贊4評論 Mizuiro-Aqua/ETAC/E/Com 建議閱讀這篇文章,瞭解一下各種視訊介面的傳輸原理。 [ETAC/SS]HDMI?DP?視訊介面該選哪個?談常見視訊介面

Java Comparable排序介面和Comparator比較介面

       實現Comparable介面的類支援排序,假設現在存在“實現Comparable介面的類的物件的List列表(或陣列)”,則該List列表(或陣列)可以通過 Collections.so

java-集合類(3)-實現比較(Comparator)介面-LinkedList針對插入刪除、開始處增加元素

實現比較器(Comparator)介面 實現比較器例子: package ArrayList; import java.util.ArrayList; import java.util.Arrays; import java.util.Collec

C++ 叠代原理、失效和實現

通過 print per 容器 struct gin net 嵌入 fin 目錄 叠代器的使用 叠代器的種類 叠代器的失效 叠代器的實現 1.叠代器的使用 為了提高C++編程的效率,STL中提供了許多容器,包括vector、list、map

74LS85 比較 【數字電路】

center pan 電路 eight led art http height src 74LS85 demo: 1110>0111 就這樣。。。。於是OAGTB引腳輸出高電平點亮LED燈

另一種比較:Comparator

span 問題 com pre log implement nts face spa package comparatordemo.cn; import java.util.Comparator; /* * 一個對象的初期,並沒有實現comparable 接口,此時

javascript解析原理

nbsp .html html www div set alert define style   瀏覽器在讀取HTML文件的時候,只有當遇到<script>標簽的時候,才會喚醒所謂的“JavaScript解析器”開始工作。 JavaScript解析器工作步驟 1

有源濾波器及電壓比較

pro ntc prot 濾波 長度 如何 size watermark 單位 同相低通濾波器 這裏特別提一下proteus如何畫頻譜圖 點擊左邊那個圖表的圖標,選擇frequency,在方格裏拉出來後,選中輸出端,鼠標左鍵按住不放,拉倒圖表的左軸上,左軸是幅

定時原理

logs col color bsp code div set for i++ for(var i=0;i<10;i++){ setTimeout(()=>{console.log(i)},1000); } for(let i=0;i&

DNS服務原理

規劃 一般來說 區分 通訊協議 階層 from ... ima ace 19.1 什麽是DNS 主機名自動解析為 IP 就很重要!那就是 DNS。 19.1.1 用網絡主機名取得IP的歷史淵源 單一檔案處理上網的年代: /etc/hosts 利用某些特定的

TreeSet排序,存儲自己定義對象,自己定義比較演示樣例

strlen 覆蓋 () num imp rgs com 哈希 ash Set:無序。不能夠反復元素。 |--HashSet:數據結構是哈希表。線程是非同步的。 保證元素唯一性的原理:推斷元素的hashCode值是否同樣。 假設同樣,還會繼續推斷

NFS服務原理和安裝配置詳解附案例演練

隨機選擇 span 通訊 操作系統 不同 網絡 定義 重新啟動 exportfs NFS服務器原理和安裝配置詳解附案例演練 1、什麽是NFS服務器   NFS就是Network File System的縮寫,它最大的功能就是可以通過網絡,讓不同的機器、不同的操作系統可以共享

Java比較

amp http 工具類 pic java 一個 .so 比較 pac 導語 本節內容,比較器Comparable是核心內容。 主要內容 重新認識Arrays類 兩種比較器的使用 具體內容 Arrays類 在之前一直使用的“java.util.Arrays.so

項目三(2)——職工表+比較

sys import int time() util println ide ray gen 修改項目三(1)中的第3題,實現比較方法,將對象數組的數據按照生日的大小給職工排序。 package pro4; import java.util.Arrays; pub

常用的比較:實現方式Compareable和Comparator

err 方式 pareto rri 編寫 sta urn getname rabl class Dog{ int size; int weight; public Dog(int s, int w){ siz

自定義比較CustomComparator

mco oid port for list str new com public package com.list; import java.util.ArrayList; import java.util.Comparator; import java.util.Li

創建一個自定義比較

rac void ger 接口 table string pre ride com 雙列集合: -------------| Map 如果是實現了Map接口的集合類,具備的特點: 存儲的數據都是以鍵值對的形式存在的,鍵不可重復,值可以重復。 ---------------