當前位置:成語大全網 - 書法字典 - Java單詞典型性

Java單詞典型性

數值的比較運算符》:& lt= =等來比較大小,字符串使用equals來比較內容是否相等。但是如何比較物體的大小呢?有了這兩個接口,比較器和可比。

兩者之間的區別:

Comparator接口在java.util包下,用於提供比較規則,通常帶有Arrays.sort(對象數組,比較規則);or collections . sort(set,比較規則);壹起使用。前面的數組或集合根據以下比較規則進行排序。比較規則是比較器接口類型的對象。妳可以創建壹個類來實現接口,重寫compare方法,在方法體中自定義比較規則,價格和權重的點擊率是可以接受的。比較參數中傳遞的兩個對象,並根據返回值o 1 & gt;O1默認升序。

java.lang包下的Comparable接口實現了compareTo方法來對對象進行排序,該方法只有壹個參數。

公共整數比較(對象對象)

對象。對象==0對象==對象

對象。obj ==正對象》obj

對象。obj ==否定對象《obj

總而言之:

比較器通常用於提供比較規則,需要壹起使用。

Comparable:要比較的對象直接實現此接口。

示例:使用比較器接口

包shwg.action

導入Java . util . arrays;

導入Java . util . comparator;

//按字符串長度比較對象大小

公開課演示{

公共靜態void main(String[] args) {

string【】names = {“Tom“、“Jerry“、“Andy“、“Lee“};

arrays . sort(names,new ByLength());

system . out . println(arrays . tostring(names));

}

}

class ByLength實現比較器& lt字符串& gt{

//只需比較兩個隨機對象o1 o2。如果Compare方法返回正數,

//將按升序排列(長度從小到大)

public int compare(字符串o1,字符串O2 ){

int r = o 1 . length()-O2 . length();

if(r = = 0 ){

//如果長度相等,則根據字符串首字母的大小比例添加符號,以便首字母按字典順序排列。

return-(o 1 . charat(0)-O2 . charat(0));

}

return r;

}

}

示例2:使用可比接口

包shwg.action

導入Java . util . collections;

導入Java . util . linked list;

導入Java . util . list;

//註意:只要實現了Comparable接口中的compareTo方法,就會自動調用。

公共類名實現可比的{

私有字符串firstName,lastName

公共名稱(字符串名字,字符串姓氏){

this . first name = first name;

this.lastName =姓氏;

}

public String toString(){ return first name+““+last name;}

//比較相同類型的對象是有意義的。您可以使用通用

public int compare to(Object o ){

Name a =(Name)o;

//lastName是字符串類型,Comparable接口已經實現,可以直接調用compareTo方法。

//比較時,從第壹個字母開始的字母按照ASCII值的大小排序。

int last CMP = last name . compare to(a . last name);

//姓氏相同。比較firstName並返回整數值。

返回lastCmp!=0 ?last CMP:first name . compare to(a . first name);

}

//測試

公共靜態void main(String[] args) {

list l = new linked list();

l.add(新名字(“Karl”、“M”));

l.add(新名字(“史蒂文”、“李”);

l.add(新名稱(“Jhon“,“O“);

collections . sort(l);

system . out . println(l);

}

}

我希望逐字采用它,妳可以在程序中運行它進行比較。