java比較器comparator使用示例分享
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class ComparatorTest implements Comparator<stuEntity> {
/**
* @param args
*/
public static void main(String[] args) {
List<stuEntity> list = new ArrayList<stuEntity>();
stuEntity stud1=new stuEntity();
stud1.setAge(10);
stud1.setName("abc");
stuEntity stud2=new stuEntity();
stud2.setAge(10);
stud2.setName("bdc");
stuEntity stud3=new stuEntity();
stud3.setAge(5);
stud3.setName("bdd");
stuEntity stud4=new stuEntity();
stud4.setAge(30);
stud4.setName("aad");
list.add(stud1);
list.add(stud2);
list.add(stud3);
list.add(stud4);
Collections.sort(list, new ComparatorTest());
for(stuEntity stud:list){
System.out.println(stud.getAge()+":"+stud.getName());
}
}
/**
*
*/
@Override
public int compare(stuEntity stud1, stuEntity stud2) {
//根據(jù)姓名排序
int maxname=stud1.getName().compareTo(stud2.getName());
if(maxname!=0)
return maxname;
//根據(jù)年齡排序
int maxage=stud1.getAge()-stud2.getAge();
//if(maxage!=0)
return maxage;
}
}
輸出:
30:aad
10:abc
10:bdc
5:bdd
java的比較器很有用,實(shí)現(xiàn)Comparator接口的compare()這個(gè)回調(diào)方法來制定排序規(guī)則,然后調(diào)用Collections.sort(list, new ComparatorTest());就可以將List進(jìn)行排序,很方便
使用時(shí)要注意compare()方法中的return的先后順序,優(yōu)先的排序規(guī)則要寫在前面
實(shí)體類:
/**
* 學(xué)生實(shí)體類
*
*/
public class stuEntity {
private int studentId;// 學(xué)號
private String name;
private int age;
private String sex;// 性別
private int roomNumber;// 房間號
private String degree;//學(xué)位
private int grade;//年級
private String deviceNumber;// 設(shè)備號
private int groupNumber;// 所屬的小組
private int javaScore;// java成績
private int netScore;// NET成績
public String getDegree() {
return degree;
}
public void setDegree(String degree) {
this.degree = degree;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
/**
* 初始化有參構(gòu)造函數(shù)
*
* @param id
* @param name
* @param age
* @param sex
* @param roomNumber
* @param deviceNumber
* @param groupNumber
* @param javaScore
* @param netScore
*/
public stuEntity(String name, int age, String sex, int roomNumber,
String deviceNumber, int groupNumber, int javaScore, int netScore) {
this.name = name;
this.age = age;
this.sex = sex;
this.roomNumber = roomNumber;
this.deviceNumber = deviceNumber;
this.groupNumber = groupNumber;
this.javaScore = javaScore;
this.netScore = netScore;
}
/**
* 無參構(gòu)造函數(shù)
*/
public stuEntity() {
}
public int getJavaScore() {
return javaScore;
}
public void setJavaScore(int javaScore) {
this.javaScore = javaScore;
}
public int getNetScore() {
return netScore;
}
public void setNetScore(int netScore) {
this.netScore = netScore;
}
public int getStudentId() {
return studentId;
}
public void setStudentId(int studentId) {
this.studentId = studentId;
}
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 String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getRoomNumber() {
return roomNumber;
}
public void setRoomNumber(int roomNumber) {
this.roomNumber = roomNumber;
}
public String getDeviceNumber() {
return deviceNumber;
}
public void setDeviceNumber(String deviceNumber) {
this.deviceNumber = deviceNumber;
}
public int getGroupNumber() {
return groupNumber;
}
public void setGroupNumber(int groupNumber) {
this.groupNumber = groupNumber;
}
}
相關(guān)文章
JDBC下Idea添加mysql-jar包的詳細(xì)過程
這篇文章主要介紹了JDBC下Idea添加mysql-jar包的詳細(xì)過程,添加jar包首先到官網(wǎng)下載jar包,然后idea導(dǎo)入jar包,在就是檢查,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11
Java基礎(chǔ) Servlet監(jiān)聽器詳解
這篇文章主要介紹了Java基礎(chǔ) Servlet監(jiān)聽器詳解的相關(guān)資料,需要的朋友可以參考下2017-07-07
教你使用idea搭建ssm詳細(xì)教程(Spring+Spring Mvc+Mybatis)
今天教大家使用idea搭建ssm詳細(xì)教程(Spring+Spring Mvc+Mybatis),文中有非常詳細(xì)的圖文介紹及代碼示例,對正在學(xué)習(xí)使用idea的小伙伴很有幫助,需要的朋友可以參考下2021-05-05
SpringBoot打印啟動(dòng)時(shí)異常堆棧信息詳解
在本篇文章里小編給大家整理的是關(guān)于SpringBoot打印啟動(dòng)時(shí)異常堆棧信息,有需要的朋友們可以學(xué)習(xí)下。2019-11-11
C#創(chuàng)建Web應(yīng)用程序代碼實(shí)例
本文主要通過實(shí)例代碼介紹了C#創(chuàng)建Web應(yīng)用程序,需要的朋友可以參考下2017-04-04
java 動(dòng)態(tài)生成SQL的實(shí)例講解

