欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java根據(jù)List內(nèi)對象的屬性排序方法

 更新時間:2018年01月03日 14:36:25   作者:Clannad_汐  
下面小編就為大家分享一篇java根據(jù)List內(nèi)對象的屬性排序方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

方法一:實現(xiàn)Comparator接口,并重寫compare方法

實體類代碼:

import java.util.Comparator;

/**
 * 學(xué)生類 方法一
 * 實現(xiàn)Comparator接口
 * 并重寫compare方法
 * @author liaot
 *
 */
public class Student implements Comparator<Student>{
 private String name; //姓名
 private int age; //年齡

 //重寫 比較方法 本次例子定義為按年齡比較
 @Override
 public int compare(Student o1, Student o2) {
  if(o1.getAge() > o2.getAge()){
   return 1;
  }else{
   return -1;
  }
 }


 public Student(String name, int age) {
  super();
  this.name = name;
  this.age = age;
 }


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

測試類:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Main {

 public static void main(String[] args) {
  //初始化四個不同的學(xué)生
  Student stu1 = new Student("路人甲", 20);
  Student stu2 = new Student("路人已", 18);
  Student stu3 = new Student("路人丙", 16);
  Student stu4 = new Student("路人丁", 19);
  //新建List把學(xué)生加進List
  List<Student> stuList = new ArrayList<>();
  stuList.add(stu1);
  stuList.add(stu2);
  stuList.add(stu3);
  stuList.add(stu4);
  System.out.println("排序前:=====");
  for(Student stu :stuList){
   System.out.println("姓名:"+stu.getName() +" 年齡"+stu.getAge());
  }
  //排序
  Collections.sort(stuList, stu1); //第一個參數(shù)為List 第二個參數(shù)為對象的一個實例
  System.out.println("排序后:=====");
  for(Student stu :stuList){
   System.out.println("姓名:"+stu.getName() +" 年齡"+stu.getAge());
  }
 }

}

運行結(jié)果:

方法二:實現(xiàn)Comparable接口 并重寫compareTo方法

/**
 * 學(xué)生類 方法二 實現(xiàn)Comparable接口 并重寫compareTo方法
 * 
 * @author liaot
 *
 */
public class Student2 implements Comparable<Student2> {
 private String name; // 姓名
 private int age; // 年齡

 // 重寫 比較方法 本次例子定義為按年齡比較
 @Override
 public int compareTo(Student2 stu) {
  if (this.age > stu.getAge()) {
   return 1;
  } else {
   return -1;
  }
 }

 public Student2(String name, int age) {
  super();
  this.name = name;
  this.age = age;
 }

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

}

測試類

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Main2 {

 public static void main(String[] args) {
  //初始化四個不同的學(xué)生
  Student2 stu1 = new Student2("路人甲", 20);
  Student2 stu2 = new Student2("路人已", 18);
  Student2 stu3 = new Student2("路人丙", 16);
  Student2 stu4 = new Student2("路人丁", 19);
  //新建List把學(xué)生加進List
  List<Student2> stuList = new ArrayList<>();
  stuList.add(stu1);
  stuList.add(stu2);
  stuList.add(stu3);
  stuList.add(stu4);
  System.out.println("排序前:=====");
  for(Student2 stu :stuList){
   System.out.println("姓名:"+stu.getName() +" 年齡"+stu.getAge());
  }
  //排序
  Collections.sort(stuList); //只有一個參數(shù)參數(shù)為List
  System.out.println("排序后:=====");
  for(Student2 stu :stuList){
   System.out.println("姓名:"+stu.getName() +" 年齡"+stu.getAge());
  }
 }

}

運行結(jié)果

三、總結(jié):兩種方式寫法和用法上的區(qū)別:

以上這篇java根據(jù)List內(nèi)對象的屬性排序方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于logBack配置日志文件及編碼配置的問題

    關(guān)于logBack配置日志文件及編碼配置的問題

    這篇文章主要介紹了logBack配置日志文件及編碼配置的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Spring?Retry實現(xiàn)重試機制的示例詳解

    Spring?Retry實現(xiàn)重試機制的示例詳解

    這篇文章主要為大家詳細介紹了Spring-Retry的用法以及實現(xiàn)原理是怎么樣的,文中的示例代碼講解詳細,具有一定的參考價值,需要的可以了解一下
    2023-07-07
  • java多線程之CyclicBarrier的使用方法

    java多線程之CyclicBarrier的使用方法

    這篇文章主要介紹了java多線程之CyclicBarrier的使用方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • javaweb上傳下載實例完整版解析(上)

    javaweb上傳下載實例完整版解析(上)

    這篇文章主要為大家詳細解析了javaweb上傳下載實例,本文重點在于文件上傳功能的實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Java中的HashMap源碼分析

    Java中的HashMap源碼分析

    這篇文章主要介紹了Java中的HashMap源碼分析,散列表是根據(jù)關(guān)鍵碼值(Key?value)而直接進行訪問的數(shù)據(jù)結(jié)構(gòu),也就是說,它通過把關(guān)鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度,這個映射函數(shù)叫做散列函數(shù),存放記錄的數(shù)組叫做散列表,需要的朋友可以參考下
    2023-09-09
  • Struts2截取字符串代碼介紹

    Struts2截取字符串代碼介紹

    這篇文章主要介紹了Struts2截取字符串代碼介紹,介紹了基本的截取方法,以及截取帶html標(biāo)簽字符串的方法,需要的朋友可以了解下。
    2017-09-09
  • Java動態(tài)代理Proxy應(yīng)用和底層源碼詳細分析

    Java動態(tài)代理Proxy應(yīng)用和底層源碼詳細分析

    Java動態(tài)代理是一種在運行時生成代理類的機制,用于代替手動編寫代理類的過程,這篇文章主要給大家介紹了關(guān)于Java動態(tài)代理Proxy應(yīng)用和底層源碼詳細分析的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • java數(shù)據(jù)類型和運算符的深入講解

    java數(shù)據(jù)類型和運算符的深入講解

    這篇文章主要給大家介紹了關(guān)于java數(shù)據(jù)類型和運算符的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • DecimalFormat數(shù)字格式化 0和# 的區(qū)別及說明

    DecimalFormat數(shù)字格式化 0和# 的區(qū)別及說明

    這篇文章主要介紹了DecimalFormat數(shù)字格式化 0和# 的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java 創(chuàng)建URL的常見問題及解決方案

    Java 創(chuàng)建URL的常見問題及解決方案

    這篇文章主要介紹了Java 創(chuàng)建URL的常見問題及解決方案的相關(guān)資料,需要的朋友可以參考下
    2016-10-10

最新評論