关于List集合中元素排序问题
问题描述:
有一个list集合,其中元素是Student对象,根据student的age排序。
Student对象
/**
* description
*
* @author 70KG
* @date 2018/9/29
*/
@Data
public class Student implements Comparable<Student> { private String name; private Integer age; private Integer num; public Student() {
} public Student(String name, Integer age, Integer num) {
this.name = name;
this.age = age;
this.num = num;
} @Override
public int compareTo(Student student) {
return student.getAge().compareTo(this.getAge());
}
}
此类需要实现Comparable接口,重写compareTo方法
测试类:
/**
* description
*
* @author 70KG
* @date 2018/9/29
*/
public class TestController { public static void main(String[] args) { List<Student> list = new ArrayList<>(); Student student1 = new Student("张三",21,1);
Student student2 = new Student("李四",22,2);
Student student3 = new Student("王五",23,3);
Student student4 = new Student("赵六",24,4); list.add(student4);
list.add(student1);
list.add(student2);
list.add(student3); System.out.println(list); Collections.sort(list); System.out.println(list);
} }
利用Collections.sort()方法进行重排序。
输出结果:
[Student(name=赵六, age=24, num=4), Student(name=张三, age=21, num=1), Student(name=李四, age=22, num=2), Student(name=王五, age=23, num=3)]
[Student(name=赵六, age=24, num=4), Student(name=王五, age=23, num=3), Student(name=李四, age=22, num=2), Student(name=张三, age=21, num=1)]
正序倒序,只需改变实体中的compareTo方法即可。
关于List集合中元素排序问题的更多相关文章
- List集合中元素排序
应用场景: 在开发中经常遇到要对List<Object>集合进行排序,并且是根据集合中的对象的某个属性来进行排序 --------以下就此做出的解决方案 public static ...
- C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响)
C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响),如以下代码将无法通过编译. foreach (int x in myArray) { x++; //错误代码,因为改变 ...
- 对list集合中元素按照某个属性进行排序
test 为集合中的元素类型(其中包含i属性) Collections.sort(list,(test o1, test o2) -> { if (o1.getI() != o2.getI()) ...
- Java删除List和Set集合中元素
今天在做项目时,需要删除List和Set中的某些元素,当时使用边遍历,边删除的方法,却报了以下异常: ConcurrentModificationException 为了以后不忘记,使用烂笔头把它记录 ...
- MT【215】集合中元素个数
设$M=\{1,2,3\cdots,2010\}$,$A$是$M$的子集且满足条件:当$x\in A$时$15x\notin A$,则$A$中的元素的个数最多是______ 分析:由于$x,15x,( ...
- java按照集合中元素的属性进行排序示例代码
public class Student { private String name; private int age; private int id; public Student() { sup ...
- More is better(hdu 1856 计算并查集集合中元素个数最多的集合)
More is better Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 327680/102400 K (Java/Others) ...
- c# Array或List有个很实用的ForEach方法,可以直接传入一个方法对集合中元素操作
using System; using System.Collections.Generic; namespace demo { class Program { static void Main(st ...
- 用Scala实现集合中相邻元素间的差值
欢迎转载,转载请注明出处,徽沪一郎. 概要 代码这东西,不写肯定不行,新学Scala不久,将实际遇到的一些问题记录下来,日后也好查找. 今天讲的是如何计算同一集合中元素两两之间的差值,即求开始集合(a ...
随机推荐
- jinkins 部署过程
jinkins 概述 jinkins 本身是一个 webapp 项目,部署在了tomcat 环境下,就变成了一个网站.他有一个功能,就是构建,构建的时候做了什么事情? gitlab 获取代码 mave ...
- linux系统状态脚本
#!/bin/bashprintf "%10s\n" "##主机名##"printf "%-10s\n" "$(hostname) ...
- adb命令查看连接PC的移动设备
cmd窗口中输入adb应会出现上图情况,如果显示不存在则需要网上下载adb工具并在我的电脑-属性-高级系统设置-环境变量中将adb工具的路径加入PATH,如下图: 输入adb devices 可以看到 ...
- ADO.NET 一般操作(c#)
ADO.NET五大对象:SqlConnection.SqlCommand.SqlDataReader.SqlDataAdapter .DataSet ,其中SqlDataAdapter 不建议使用 一 ...
- Spring Aop中execution的语法
参考地址:https://blog.csdn.net/zz210891470/article/details/54175107 execution(* com.sample.service.impl. ...
- java之hibernate之组件映射
1.在开发中,有的类信息比较复杂,而且某几个信息可以组成某一个部分,这个时候可以采用组件映射,组件映射是一张表映射到多个类.表结构 2.类的设计 Link.java public class Link ...
- WCF与Web API在应用上的选择
在最近发布的Visual Studio 2012及.NET 4.5中, 微软正式推出新的网络服务框架ASP.NET Web API.作为ASP.NET MVC 4的一部分,ASP.NET Web ...
- java报错与解决方法总结
错误 error:Syntax error, insert ")" to complete MethodDeclaration 解决办法:放到main方法里 错误原因: 错误: e ...
- 基于【 springBoot +springCloud+vue 项目】一 || 后端搭建
缘起 本项目是基于之前学习的一个Dubbo+SSM分布式项目进行升级,基于此项目对前后端分离项目.微服务项目进一步深入学习.之前学习了vue.springBoot.springCloud后,没有进行更 ...
- javascript_18-Array 数组
数组 数组-引用类型,JavaScript中的内置对象 Array对象的属性 length 获取数组的长度(元素个数) 检测数组 instanceof Array.isArray() //h5新增 常 ...