国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

java使用compareTo實現(xiàn)一個類的對象之間比較大小操作

瀏覽:8日期:2022-08-24 15:40:58

首先定義一個對象,注意這個對象必須實現(xiàn)Comparable接口,并重寫這個接口的compareTo方法

package cn.demo; public class Student implements Comparable{ private int number=0; //學(xué)號 private String name=''; //學(xué)生姓名 private String gender=''; //性別 public int getNumber(){ return number; } public void setNumber(int number){ this.number=number; } public String getName(){ return name; } public void setName(String name){ this.name=name; } public String getGender(){ return gender; } public void setGender(String gender){ this.gender=gender; } public int compareTo(Object obj){ Student student=(Student)obj; if(this.number==student.number){ return 0; //如果學(xué)號相同,那么兩者就是相等的 }else if(this.number>student.getNumber()){ return 1; //如果這個學(xué)生的學(xué)號大于傳入學(xué)生的學(xué)號 }else{ return -1; //如果這個學(xué)生的學(xué)號小于傳入學(xué)生的學(xué)號 } }}

在上面的重寫方法中標(biāo)紅的地方,如果是小于號,則是按照降序排列,但是在我貼上去的代碼,則是按升序排列

接下來就是測試類了:

package cn.demo; import java.util.ArrayList;import java.util.Collections;import java.util.Iterator; public class Test { public static void main(String[] args) { Student student1=new Student(); student1.setNumber(5); Student student2=new Student(); student2.setNumber(2); Student student3=new Student(); student3.setNumber(1); Student student4=new Student(); student4.setNumber(4); ArrayList<Student> list=new ArrayList<Student>(); list.add(student1); list.add(student2); list.add(student3); list.add(student4); System.out.println('-------排序前-------'); Iterator<Student> iterator=list.iterator(); while(iterator.hasNext()){ Student stu=iterator.next(); System.out.println(stu.getNumber()); } //使用Collections的sort方法對list進行排序 System.out.println('-------排序后-------'); Collections.sort(list); iterator=list.iterator(); while(iterator.hasNext()){ Student stu=iterator.next(); System.out.println(stu.getNumber()); } }}

如上所示,可以直接使用collections的sort方法進行排序

-------排序前-------5214-------排序后-------5421

補充知識:【JAVA】用Comparable接口學(xué)生的成績做降序排序!請正確指定泛型;用Comparator實現(xiàn)按照姓名排序,請正確指定泛型!

創(chuàng)建四個學(xué)生信息,分別包含姓名(String) , 年齡(int) ,分數(shù)(double)

(1)用Comparable接口對下列四位同學(xué)的成績做降序排序, 如果成績一樣,那在成績排序的基礎(chǔ)上按照年齡由小到大排序,請正確指定泛型;

(2)用Comparator實現(xiàn)按照姓名排序,請正確指定泛型。

//定義學(xué)生類,并實現(xiàn)Comparable接口<定義Student類型>public class Student implements Comparable<Student>{ private String name; private int age; private double grade; public Student() { } public Student(String name, int age, double grade) { this.name = name; this.age = age; this.grade = grade; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public double getGrade() { return grade; } public void setGrade(double grade) { this.grade = grade; } @Override public String toString() { return 'Student [姓名 :' + name +' 年齡 :' + age +' 分數(shù)' + grade + ']'; } /** * 用Comparable接口對下列四位同學(xué)的成績做降序排序, * 如果成績一樣,那在成績排序的基礎(chǔ)上按照年齡由小到大排序。請正確指定泛型 * @param o * @return */ @Override public int compareTo(Student o) { if(Double.compare(this.getGrade() , o.getGrade()) != 0){ if(Double.compare(this.getGrade() , o.getGrade()) > 0){return 1; }else {return -1; } } return this.getAge() - o.getAge(); }}

*定義Student類,聲明基本的屬性,方法及完成對Comparable接口的實現(xiàn),實現(xiàn)“對成績實現(xiàn)降序,如果成績一樣,在成績排序的基礎(chǔ)上按照年齡由大到小的排序”的結(jié)果。

public class Task { public static void main(String[] args) { //定義四個學(xué)生對象 Student[] s1 = new Student[4]; s1[0] = new Student('liusan' , 20 , 90.0); s1[1] = new Student('lisi' , 22 , 90.0); s1[2] = new Student('wangwu' , 20 , 99.0); s1[3] = new Student('sunliu' , 22 , 100.0); Arrays.sort(s1); System.out.println(Arrays.toString(s1)); System.out.println('=================='); //用Comparator實現(xiàn)按照姓名排序,請正確指定泛型 Arrays.sort(s1, new Comparator<Student>() { @Override public int compare(Student o1, Student o2) {return o1.getName().compareTo(o2.getName()); } }); System.out.println(Arrays.toString(s1)); }}

以上這篇java使用compareTo實現(xiàn)一個類的對象之間比較大小操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 国内精品久久久久久久星辰影视 | 亚洲精品人成网在线播放影院 | 午夜久久视频 | 日韩在线二区全免费 | 国产三级做爰在线观看视频 | 亚洲成人自拍网 | 国产不卡毛片 | 亚洲欧美不卡中文字幕 | 国产成人深夜福利在线观看 | 国产a毛片| 成人观看的视频三级 | 国产天堂在线一区二区三区 | 三级做人爱c视频18三级 | 久久成人免费大片 | 久久无码精品一区二区三区 | 国产精品久久久久a影院 | 欧美日韩一区二区三区视视频 | 日韩精品久久久免费观看夜色 | 国产一区二区精品久 | 亚洲网址在线观看 | 美女张开腿 | 欧美成人久久一级c片免费 欧美成人看片黄a免费 | 久久综合精品视频 | 国产精品久久久久久影院 | 国产精品va一级二级三级 | 毛片女| 欧美日韩一区二区三在线 | 精品成人 | 日本特级黄毛片毛片视频 | 国产精品视频永久免费播放 | 欧美日韩国产58香蕉在线视频 | 国产精品成人aaaaa网站 | 男人的天堂视频在线观看 | 欧美一级看片 | 精品国产一区二区三区不卡蜜臂 | 在线成年人网站 | 黄色三级国产 | 伊人久久免费 | 亚洲国产日韩欧美高清片a 亚洲国产日韩欧美在线 | 色资源二区在线视频 | 真实偷清晰对白在线视频 |