java物件比較器和轉殖

2021-09-02 10:29:06 字數 1896 閱讀 1223

一.比較器comparable和comparator

public class mystring ;

person b=;

arrays.sort(a);

for(int i=0;i程式執行結果:

我們發現string可以呼叫arrays.sort()函式,而我們自定義的person類報錯,看錯誤的關鍵字comparable

開啟string原始碼

由此引入比較器comparable,我們下面利用comparable介面來實現person使用arrays.sort()按年齡排序遞增排序。

comparable介面能夠對實現它的類的物件進行排序,主要使用compareto函式來實現排序。compareto函式返回int型別,分別返回-1,0,1對應小於,等於,大於。

把**改為:

public class mystring ;

person b=;

arrays.sort(a);

for(int i=0;i

//比較器的比較函式

/*** 如果當前物件小於比較物件,返回-1

* 如果當前物件等於比較物件,返回0

* 如果當前物件大於比較物件,返回1

*/@override

public int compareto(person o)

//重寫tostring方法

@override

public string tostring()

}

執行結果:

為自定義的person實現比較器comparable介面,即可呼叫arrays.sort()進行排序。

另外還有另一種實現方法,實現

comparator介面。

public class mystring ;

person b=;

arrays.sort(a);

for(int i=0;i

}

二.物件的轉殖clone將乙個物件複製乙份,稱作物件的轉殖技術。轉殖物件分為兩步。

1.實現cloneable標記介面

cloneable是乙個標記介面,此介面沒有定義任何方法。只是作為乙個標記給虛擬機器。

2.重寫object的clone方法

//自定義類person實現cloneable介面

class person implements cloneable

//重寫object的clone方法

@override

protected object clone() throws clonenotsupportedexception

}

轉殖的呼叫:

public static void main(string args)  catch (clonenotsupportedexception e) 

}

這樣既可以完成對乙個物件的轉殖,當我們要建立一系列類似的物件時,可以考慮使用轉殖技術可以得到更好的效能,比你new建立好一些

java物件比較器和轉殖

一.比較器comparable和comparator public class mystring person b arrays.sort a for int i 0 i system.out.print a i system.out.print r n arrays.sort b for int ...

JAVA 物件轉殖clone

有時候我們希望轉殖乙個已存在的物件,並對其進行操作,但是不希望改變原物件,這時使用clone技術就非常方便了。但是使用clone,也有一些需要注意的地方,因為clone有淺層轉殖和深層轉殖。還是習慣先直接上 結合 講解。注 如果你希望某個類具有clone功能,該類必須實現介面cloneable,它是...

Java中的物件轉殖

當拷貝乙個變數時,原始變數和拷貝變數引用同乙個物件,當改變乙個物件的例項域的值時,其他的物件相應的也將受到影響。employee em new employee em2 em 如果建立乙個物件的新的copy,它的最初狀態和original一樣,但以後將可以各自改變各自的狀態,那就需要使用clone方...