首页 > 开发 > Java > 正文

java根据List内对象的属性排序方法

2024-07-13 10:15:54
字体:
来源:转载
供稿:网友

方法一:实现Comparator接口,并重写compare方法

实体类代码:

import java.util.Comparator;/** * 学生类 方法一 * 实现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) {  //初始化四个不同的学生  Student stu1 = new Student("路人甲", 20);  Student stu2 = new Student("路人已", 18);  Student stu3 = new Student("路人丙", 16);  Student stu4 = new Student("路人丁", 19);  //新建List把学生加进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); //第一个参数为List 第二个参数为对象的一个实例  System.out.println("排序后:=====");  for(Student stu :stuList){   System.out.println("姓名:"+stu.getName() +" 年龄"+stu.getAge());  } }}

运行结果:

java,List,内对象,属性,排序

方法二:实现Comparable接口 并重写compareTo方法

/** * 学生类 方法二 实现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) {  //初始化四个不同的学生  Student2 stu1 = new Student2("路人甲", 20);  Student2 stu2 = new Student2("路人已", 18);  Student2 stu3 = new Student2("路人丙", 16);  Student2 stu4 = new Student2("路人丁", 19);  //新建List把学生加进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); //只有一个参数参数为List  System.out.println("排序后:=====");  for(Student2 stu :stuList){   System.out.println("姓名:"+stu.getName() +" 年龄"+stu.getAge());  } }}

运行结果

java,List,内对象,属性,排序

三、总结:两种方式写法和用法上的区别:

java,List,内对象,属性,排序

以上这篇java根据List内对象的属性排序方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表