java學(xué)習(xí)——比較器,進(jìn)行排序

Arrays類

inttemp[] = {3,5,7,9,1,2,6,8};//聲明一個(gè)整形數(shù)組

Arrays.sort(temp);//數(shù)組排序

System.out.println(Arrays.toString(temp));// 以字符串輸出數(shù)組? [1, 2, 3, 5, 6, 7, 8, 9]

intpoint = Arrays.binarySearch(temp,3);// 檢索數(shù)據(jù)位置

System.out.println("元素'3'的位置在:"+ point);//元素'3'的位置在:2

Arrays.fill(temp,3);//填充數(shù)組

System.out.println(Arrays.toString(temp));// 以字符串輸出數(shù)組 [3, 3, 3, 3, 3, 3, 3, 3]

Comparable接口 ??

public 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;

}

publicString toString() {?

returnname+"\t\t"+age+"\t\t"+score;?

}

@Override

public int compareTo(Student o) {// 覆寫compareTo()方法,實(shí)現(xiàn)排序規(guī)則的應(yīng)用

if(this.score> o.score) {

return -1;

}else if(this.score< o.score) {

return 1;

}else{

if(this.age> o.age){

return 1;

}else if(this.age< o.age){

return -1;

}else{

return 0;}}}}

main

Student stu[] = {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)};

java.util.Arrays.sort(stu);// 進(jìn)行排序操作

for(int i =0; i < stu.length; i++) {

System.out.println(stu[i]);

}

//返回如下:

自定義比較規(guī)則:

//定義學(xué)生類

public classStudents {

privateStringname;

private intage;

publicStudents(String name,intage) {

this.name= name;

this.age= age;

}

public booleanequals(Object obj) {

if(this== obj){

return true;

}

if(!(objinstanceofStudents)){

return false;

}

Students stu = (Students) obj;

if(stu.name.equals(this.name)&&stu.age==this.age){

return true;

}else{

return false;

}

}

publicString toString() {

returnname+"\t\t"+age;

}

publicString getName() {

returnname;

}

public voidsetName(String name) {

this.name= name;

}

public intgetAge() {

returnage;

}

public voidsetAge(intage) {

this.age= age;

}

}

// 定義比較規(guī)則

public classStudentComparatorimplementsComparator {//實(shí)現(xiàn)比較器接口

@Override

public intcompare(Students s1, Students s2) {// 為學(xué)生類定義比較規(guī)則

if(s1.equals(s2)){

return0;

}else if(s1.getAge() < s2.getAge()){

return1;

}else{

return-1;

}

}

}

// 為對(duì)象數(shù)組排序

Students student[] = {new Students("張三",20),new Students("李四",22),new Students("王五",20),new Students("趙六",22)};

java.util.Arrays.sort(student,newStudentComparator());//排序,指定排序規(guī)則

for(inti =0; i < student.length; i++) {

System.out.println(student[i]);

}

//返回如下:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,753評(píng)論 18 399
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 4,017評(píng)論 0 11
  • 泛型 對(duì)象和實(shí)例是一個(gè)意思,類與對(duì)象的關(guān)系就像數(shù)據(jù)類型和變量一樣。 泛型的主要目的之一就是用來(lái)指定類(如:容器)要...
    yueyue_projects閱讀 630評(píng)論 0 0
  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 11,173評(píng)論 0 23
  • 人越大,就越感到孤寂,雖然在人前也嘻嘻哈哈、有說(shuō)有笑,但是內(nèi)心還是空虛的,所以人大了,就要在心里放著一個(gè)人,觀察她...
    易水寒山閱讀 230評(píng)論 0 0

友情鏈接更多精彩內(nèi)容