博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java集合根据属性排序
阅读量:7023 次
发布时间:2019-06-28

本文共 1426 字,大约阅读时间需要 4 分钟。

hot3.png

发现好多人还是不知道根据集合所含对象的属性排序怎么样实现,今天就用这个小功能作为我的第一篇博客了

假定要求如下:集合根据Student对象的age属性排序。

首先创建Student类,这里要实现Comparable接口,重写compareTo方法

package base.attributeSort;public class Student implements Comparable
{ private String name; private int age; public Student(){} public Student(String name,int age){ this.name=name; this.age=age; } @Override public int compareTo(Student o) { return this.age-o.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; } }

然后创建测试类AttributeSort

package base.attributeSort;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class AttributeSort {	public static void main(String[] args) {		Student stu1=new Student("zhangsan",3);		Student stu2=new Student("lisi",4);		Student stu3=new Student("wangwu",5);				List
list=new ArrayList
(); list.add(stu2); list.add(stu3); list.add(stu1); Collections.sort(list); for(Student stu:list){ System.out.println(stu.getAge()+"==="+stu.getName()); } }}

这样输出结果即为

225353_IVMF_2297285.png

如果想倒叙排列的话两种办法

1)修改CompareTo,如下

public int compareTo(Student o) {

        return o.age-this.age;
    }

2)将AttributeSort中的Collections.sort(list);修改为Collections.sort(list,Collections.reverseOrder());

如果是想根据其他属性排序,只需要修改compareTo方法的代码即可了,利用Jdk自带的方法还是很简单的。

转载于:https://my.oschina.net/u/2297285/blog/751949

你可能感兴趣的文章
oracle手动删除数据库
查看>>
Android爬坑之旅:软键盘挡住输入框问题的终极解决方案
查看>>
深入解析MySQL分区(Partition)功能
查看>>
虚拟机安装Ubuntu过程记录
查看>>
Navicat for Oracle 绿色版 连接 Oracle 12c
查看>>
HTML5 Canvas 动态勾画等速螺线
查看>>
maven 手动执行下载
查看>>
PL/SQL学习笔记之事务
查看>>
Swift 类
查看>>
jqPlot图表插件学习之阴阳烛图
查看>>
计算机视觉与图像处理、模式识别、机器学习学科之间的关系
查看>>
香港学前教育
查看>>
marketscript
查看>>
MarteEngine: Animate sprite
查看>>
人生的高度
查看>>
PHP 5.5.0 Alpha6 发布
查看>>
Mysql常用命令大全
查看>>
强连通图的算法
查看>>
yum本地源配置
查看>>
CSharp - Comparison between IComparer and IComparable
查看>>