1. 程式人生 > >Comparable介面分析

Comparable介面分析

現看一下該介面的定義:
public interface Comparable{
   public int compareTo(Object o);
}
該介面定義類的自然順序,實現該介面的類就可以按這種方式排序.
一般要求:
e1.equals((Object)e2)和e1.compareTo((Object)e2)==0具有相同的值,
這樣的話我們就稱自然順序就和equals一致.
這個介面有什麼用呢?
如果資料或者List中的元素實現了該介面的話,我們就可以呼叫Collections.sort或者Arrays方法給他們排序.

如果自然順序和equals不一致的話,如果出現在Sorted Map和Set裡面,
就會出現預想不到的邏輯錯誤,可能你呼叫add的時候新增不了,而集合裡面確沒有這個元素.具體的討論要介面雜湊表的應用.

相關推薦

Comparable介面分析

現看一下該介面的定義:public interface Comparable{   public int compareTo(Object o);}該介面定義類的自然順序,實現該介面的類就可以按這種方式排序.一般要求:e1.equals((Object)e2)和e1.comp

Java Comparable介面分析與實踐

此介面對實現它的每個類的物件進行整體排序。這種排序被稱為類的自然排序,類的compareTo方法被稱為它的自然比較方法。 實現此介面的物件列表(和陣列)可以通過Collections.sort或者Arrays.sort進行自動排序,這個兩個排序實現使用的時快速排序。實現此介

仁潤雲丨網路小貸風控資料介面分析(多頭借貸,芝麻信用)

對於網路小貸平臺而言,徵信和風控是業務發展過程中的重要環節。網路小貸業務主要防範的是欺詐風險和信用風險,諸如借款人通過套現、偽造、冒領冒用、惡意透支等手段進行騙貸。此外,平臺與平臺之間資訊不透明,使用者同時在多個平臺重複借貸等不良現象時常出現,市場資料共享機制有待完善。   關於網路小貸風控,常

重寫hashcode和equals方法,以及加入treeset實現comparable介面重寫compareTo方法

package Interview; import java.util.*; class People implements Comparable<People> { public String name; public int age; public People(Str

JAVA 利用Arraylist.sort()進行排序的實現。(comparable介面的實現)

1.什麼是Comparable介面 此介面強行對實現它的每個類的物件進行整體排序。此排序被稱為該類的自然排序 ,類的 compareTo 方法被稱為它的自然比較方法 。實現此介面的物件列表(和陣列)可以通過 Collections.sort (和 Arrays.sort )進行自動排序。實現此介面的

Queue介面分析:add和offer區別,remove和poll方法到底啥區別

往佇列中新增元素有兩個方法,分佈是add和offer方法,兩者的入參和返回值都一樣,或許很多同學都奇怪,為什麼,要有這兩個功能類似(都是新增元素),但方法名不一樣的方法,看看原始碼的註釋 以下為Queue介面中方法定義: ``` public interface Queue<E

Java中的Comparable介面和Comparator介面

介紹Comparable<T>介面和Comparator<T>介面都是JDK中提供的和比較相關的介面。使用它們可以對物件進行比較大小,排序等操作。這算是之後排序的先導知識吧。Comparable, 字面意思是“可以比較的”,所以實現它的類的多個例項應該可以相互比較“大小”或者

Effective Java 第三版讀書筆記——條款14:考慮實現 Comparable 介面

與本章討論的其他方法不同,compareTo 方法並沒有在 Object 類中宣告。相反,它是 Comparable 介面中的唯一方法。 通過實現 Comparable 介面,一個類表明它的例項有一個自然序( natural ordering )。對實現 Comparable 介面的物件所組成的陣列排序非常簡

java的Comparable介面實現自定義排序

除了利用資料庫的sql語句排序還可以利用java的Comparable介面自定義排序。 import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Emplo

Comparable介面和Comparator介面的區別(通俗版)

概述 Comparable和Comparator都是用來實現集合中元素的比較、排序的。 Comparable是在集合內部定義的方法實現的排序,位於java.lang下。 Comparator是在集合外部實現的排序,位於java.util下。 Comparable是一個物件本

RIL 流程 關鍵傳輸介面分析

RIL 分為RILJ 和RILC 部分,而RIL 和modem 通訊通過socket ,傳送的是串列埠 AT command [其實只要熟悉linux 程式設計,rild 部分確實很好理解]花了4天左右認認真真分析 在初始化 reference-ril 庫的時候,建立

【java】實現Comparable介面和Comparator介面,並重寫compareTo方法和compare方法

實現Comparable介面和Comparator介面,並重寫compareTo方法和compare方法 2016年08月11日 14:39:25 蘇尹 閱讀數:10772更多 個人分類: 學習筆記 實體類:java.lang.Comparable(介面) + coma

Java中類的比較與排序方法(應用Comparable介面與Comparator介面)

引言 在平時寫Java的程式的時候,如果要進行一些基本型別的變數的比較,可以很方便得呼叫’Math.max()’、Math.min()等方法,如果要對陣列或者列表進行排序,也可以用Arrays.sort()和Collections.sort()等已經封裝好的方法來進行。但是,如果是一個自

Comparable介面實現集合的排序

1.讓需要排序的物件實現Comparable介面,並重寫compareTo方法 public class Student implements Comparable<Student> {  //泛型為需要排序的物件   

Function介面、BiFunction介面、Consumer介面分析

Function函式式介面 關於什麼是Function,這裡就不做介紹了。我們就需要知道Function是jdk8提供的一個預設介面。從Function名字,我們就可以看出來Function介面就是指的是一個函式介面。那麼就可以對映到數學上面來說函式的解釋:函式

關於Comparable介面和Comparetor介面的兩種排序

Comparable介面 TreeSet:實現去重和排序的方式:1.讓元素去實現Comparable介面,重寫compareTo方法 public class Demo { public static void main(String[] args) {

Comparable介面 排序

compareTo返回值為-1 、 1 、 0 的排序問題 1.什麼是Comparable介面 此介面強行對實現它的每個類的物件進行整體排序。此排序被稱為該類的自然排序 ,類的 compareTo 方法被稱為它的自然比較方法 。實現此介面的物件列表(和陣列)可以通過 Collection

程式實現對資料排序並按出現次數進行排序 程式實現對資料排序並按出現次數進行排序(注:用面向物件的方式實現,用for迴圈進行排序,別用comparable介面實現){1,4,2,1,3,2,1,4}作為

程式實現對資料排序並按出現次數進行排序 程式實現對資料排序並按出現次數進行排序(注:用面向物件的方式實現,用for迴圈進行排序,別用comparable介面實現){1,4,2,1,3,2,1,4}作為引數(引數可變)傳入java方法中,控制檯輸出以下結果 1出現了3次 2出現了2次

Java設計模式之從[歡迎介面]分析模板方法(Template Method)模式

  模板方法是在抽象類中最常用的模式了(應該沒有之一),它定義一個操作中演算法的骨架,而將一些步驟延遲到子類中,使得子類可以不改變一個演算法的結構即可重新定義演算法的某些步驟。   例如我們要編寫一個歡迎介面,如果使用者是第一次開啟本軟體,則彈出一個歡迎的提示。為了能夠實現

路由器web介面分析(一)---把握整體架構

在工作中涉及到了web頁面和底層互動問題,這裡做下簡單回顧。 本文基於hisi方案分析web介面整體架構。 頁面初始化流程: 呼叫hsan.init(param,callback) 初始化,主要配置config.js中的資料到hsan物件。接著呼叫回撥