List集合中的对象根据属性排序
List集合中的对象根据属性排序
集合类List存放的数据,默认是按照放入时的顺序存放的,比如依次放入A、B、C,则取得时候,则也是A、B、C的顺序,实际场景中,有时我们需要根据自定义的规则对List中的元素进行排序,该如何实现呢?看下面小例子:
- package test.tool.gui.dbtool.util;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.List;
- public class Test {
- public static void main(String[] args) {
- List<Student> list = new ArrayList<Student>();
- //创建3个学生对象,年龄分别是20、19、21,并将他们依次放入List中
- Student s1 = new Student();
- s1.setAge(20);
- Student s2 = new Student();
- s2.setAge(19);
- Student s3 = new Student();
- s3.setAge(21);
- list.add(s1);
- list.add(s2);
- list.add(s3);
- System.out.println("排序前:"+list);
- Collections.sort(list, new Comparator<Student>(){
- /*
- * int compare(Student o1, Student o2) 返回一个基本类型的整型,
- * 返回负数表示:o1 小于o2,
- * 返回0 表示:o1和o2相等,
- * 返回正数表示:o1大于o2。
- */
- public int compare(Student o1, Student o2) {
- //按照学生的年龄进行升序排列
- if(o1.getAge() > o2.getAge()){
- return 1;
- }
- if(o1.getAge() == o2.getAge()){
- return 0;
- }
- return -1;
- }
- });
- System.out.println("排序后:"+list);
- }
- }
- class Student{
- private int age;
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- @Override
- public String toString() {
- return getAge()+"";
- }
- }
执行结果:
- 排序前:[20, 19, 21]
- 排序后:[19, 20, 21]
当然对象的属性可以多个,比如按年龄升序,按成绩降序等
如果是字符串的话,可以使用
Collections.sort(list,new Comparator<Student>() {
@Override
public int compare(Student stu1, Student stu2){
return -1*stu1.getAge().compareTo(stu2.getAge());
}
});
List集合中的对象根据属性排序相关推荐
- 对List集合中的对象进行按某个属性排序
最近在实际的开发工作中,碰到排序的问题,如题,我们如何针对List集合中的某一个属性进行排序 import java.util.ArrayList; import java.util.Collecti ...
- JS 中对数组按照数组中某个对象的属性值进行排序
最近遇到了按照数组中某个对象的属性值进行排序的需求,找了很多种方式,下面这个完美解决: arr是数组名,attr是数组某个对象的属性 完美解决~~ 转载于:https://www.cnblogs.co ...
- JS中对象按属性排序(冒泡排序)
原文地址 https://www.cnblogs.com/it-Ren/p/10898947.html 一路向北√ 越努力,越幸运. JS中对象按属性排序(冒泡排序) 冒泡排序:它重复地走访过要排序的 ...
- 按对象某属性排序的几种方法
按对象某属性排序的几种方法: 第一种,可以实现边添加边排序,需要用到TreeSet. 第二种,用数组存放对象们,但是不需单独取出某属性排列好再重存,而是在原数组上用比较器重新排一次序.需要用到Arra ...
- HTML中DOM对象的属性和方法的层级关系是怎样的?(目录即层次)
HTML中DOM对象的属性和方法的层级关系是怎样的?(目录即层次) 一.总结 一句话总结:目录就是测试题 1.document取得元素(get element)的方式有哪几种? 解答:四种,分别是id ...
- java listt add_Java8 使用流抽取ListT集合中T的某个属性操作
免费资源网 - https://freexyz.cn/ 在java开发中,我们经常会遇到需要从一个集合中,抽取集合中元素的某一个属性.在java8之前,我们通常采用for循环去获取,但java8之后我 ...
- 高薪程序员面试题精讲系列15之Java中的对象如何实现排序?
一. 面试题及剖析 1. 今日面试题 我们在项目开发时,有时候会遇到列表搜索查询等效果,其中大部分都可以利用SQL语句来实现,但也有些特殊的搜索排序利用SQL是很难实现的,比如对中文进行排序.说到排序 ...
- 将集合中的内容按时间排序
/** * 将集合中的内容按时间排序 * @param list */ private static void ListSort(List<BossMsgInfo> list) { Col ...
- JavaScript 中遍历对象的属性
原文链接 JavaScript 中遍历对象的属性 参考 JavaScript中的属性:如何遍历属性 <JavaScript 高级程序设计> 概述 遍历 JavaScript 对象中的属性没 ...
最新文章
- java中的匿名内部类
- 苏宁V购 不为拯救 只求改变
- C语言——实现用链表存储学生信息,当输入0退出输入,并查找学号为3的学生是否存在
- css --- 行内框和内容区
- 辅助Visual Studio 2017部署的DevOps新工具
- hive的SerDe序列化
- 线程的生命周期图(附多线程)
- Codeforces Round #467 (Div. 2)
- 2017中国程序员薪资生存现状调查报告
- 网站开发之HTML基础表格Table和表单Form(三)
- 算法导论 斐波那契堆
- html实现字体加边框及填充
- 计算机搜索不了硬盘文件资料,解决WINDOWS痛点,本地文件搜索从未如此简单
- 使用阿里巴巴的iconfont图片库(下载到本地)
- VIP专区_读书_腾讯网
- 游戏+AI,你不曾想象的未来
- 普歌-飞灵团队-nuxt中jQuery报e.indexOf is not a function错误
- VirtualBox复制虚拟机(同电脑、跨电脑)
- 软技能入门《质量》系列 -- 密切追踪
- [Spring Boot 6]企业级开发
热门文章
- php和 sqlserver效率,SQLServer语句执行效率及性能测试
- 旋转角度_办公娱乐新神器!这款稳固的创意支架,360°旋转随便换角度
- 聊聊flink Table的groupBy操作
- netty中的future和promise源码分析(二)
- 公布.NET 框架库源代码(转)
- IoC容器Autofac(3) - 理解Autofac原理,我实现的部分Autofac功能(附源码)
- Linux下获取详细硬件信息的工具:Dmidecode命令详解
- Fork 一个仓库并同步
- 按需生产 ,我们准备好了吗?
- Map m=new HashMap()