Java中的比較器有哪些-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)Java中的比較器有哪些,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

專業(yè)從事做網(wǎng)站、成都做網(wǎng)站,高端網(wǎng)站制作設(shè)計(jì),小程序設(shè)計(jì),網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團(tuán)隊(duì)竭力真誠(chéng)服務(wù),采用成都h5網(wǎng)站建設(shè)+CSS3前端渲染技術(shù),響應(yīng)式網(wǎng)站設(shè)計(jì),讓網(wǎng)站在手機(jī)、平板、PC、微信下都能呈現(xiàn)。建站過(guò)程建立專項(xiàng)小組,與您實(shí)時(shí)在線互動(dòng),隨時(shí)提供解決方案,暢聊想法和感受。

在Java中經(jīng)常會(huì)涉及到對(duì)象數(shù)組的排序問(wèn)題,那么就涉及到對(duì)象之間的比較問(wèn)題。

通常對(duì)象之間的比較可以從兩個(gè)方面去看:

第一個(gè)方面:對(duì)象的地址是否一樣,也就是是否引用自同一個(gè)對(duì)象。這種方式可以直接使用“==“來(lái)完成。

第二個(gè)方面:以對(duì)象的某一個(gè)屬性的角度去比較。

從最新的JDK8而言,有三種實(shí)現(xiàn)對(duì)象比較的方法:

一、覆寫Object類的equals()方法;

二、繼承Comparable接口,并實(shí)現(xiàn)compareTo()方法;

三、定義一個(gè)單獨(dú)的對(duì)象比較器,繼承自Comparator接口,實(shí)現(xiàn)compare()方法。

由于使用的排序方式的不同,具體選擇哪種方法來(lái)實(shí)現(xiàn)對(duì)象的比較也會(huì)有所不同。

覆寫equals()方法,一般用于自己實(shí)現(xiàn)對(duì)象數(shù)組排序的情況,而對(duì)于要使用java內(nèi)置的排序算法時(shí),使用后面兩種方式都是可行的。

先來(lái)看第二種方式,這種方式就是讓自己編寫的類繼承Comparable接口,并實(shí)現(xiàn)compareTo()方法,這種情況下,在使用java.util.Arrays.sort()

方法時(shí),不用指定具體的比較器,sort()方法會(huì)使用對(duì)象自己的比較函數(shù)來(lái)完成對(duì)象的排序。

下面是一個(gè)具體的例子:

import java.util.Arrays;

class BookCook implements Comparable<BookCook>{
	private String title;
	private double price;
	public BookCook(String title,double price){
		this.title = title;
		this.price = price;
	}
	@Override
	public String toString() {
		return "書名:"+this.title+",價(jià)格:"+this.price;
	}
	@Override
	public int compareTo(BookCook o) {
		if(this.price > o.price){
			return 1;
		}else if(this.price < o.price){
			return -1;
		}else{
			return 0;
		}
	}
}

網(wǎng)站標(biāo)題:Java中的比較器有哪些-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://muchs.cn/article24/djjgce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、微信小程序、網(wǎng)站收錄、營(yíng)銷型網(wǎng)站建設(shè)、微信公眾號(hào)云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司