问题描述:

有一个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集合中元素排序问题的更多相关文章

  1. List集合中元素排序

    应用场景: 在开发中经常遇到要对List<Object>集合进行排序,并且是根据集合中的对象的某个属性来进行排序    --------以下就此做出的解决方案 public static ...

  2. C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响)

    C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响),如以下代码将无法通过编译. foreach (int x in myArray) { x++; //错误代码,因为改变 ...

  3. 对list集合中元素按照某个属性进行排序

    test 为集合中的元素类型(其中包含i属性) Collections.sort(list,(test o1, test o2) -> { if (o1.getI() != o2.getI()) ...

  4. Java删除List和Set集合中元素

    今天在做项目时,需要删除List和Set中的某些元素,当时使用边遍历,边删除的方法,却报了以下异常: ConcurrentModificationException 为了以后不忘记,使用烂笔头把它记录 ...

  5. MT【215】集合中元素个数

    设$M=\{1,2,3\cdots,2010\}$,$A$是$M$的子集且满足条件:当$x\in A$时$15x\notin A$,则$A$中的元素的个数最多是______ 分析:由于$x,15x,( ...

  6. java按照集合中元素的属性进行排序示例代码

    public class Student { private String name; private int age; private int id; public Student() {  sup ...

  7. More is better(hdu 1856 计算并查集集合中元素个数最多的集合)

    More is better Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 327680/102400 K (Java/Others) ...

  8. c# Array或List有个很实用的ForEach方法,可以直接传入一个方法对集合中元素操作

    using System; using System.Collections.Generic; namespace demo { class Program { static void Main(st ...

  9. 用Scala实现集合中相邻元素间的差值

    欢迎转载,转载请注明出处,徽沪一郎. 概要 代码这东西,不写肯定不行,新学Scala不久,将实际遇到的一些问题记录下来,日后也好查找. 今天讲的是如何计算同一集合中元素两两之间的差值,即求开始集合(a ...

随机推荐

  1. PHP保留两位小数显示

    <?php $num = '10.4567'; //第一种:利用round()对浮点数进行四舍五入 echo round($num,2).PHP_EOL; //10.46 //第二种:利用spr ...

  2. Spring的并发问题——有状态Bean和无状态Bean

    一.有状态和无状态 有状态会话bean   :每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”:一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束.即每 ...

  3. c++基础(三)——容器

    1. 顺序容器 vector和string将元素保存在连续的内存空间中.由于元素是连续存储的,由元素的下标来计算其地址是非常快速的.但是在这两种容器的中间位置添加或删除元素就非常耗时 list和for ...

  4. go 渲染数据到文件

    //把数据写到文件里面 package main import ( "fmt" "text/template" "time" "o ...

  5. Python Web开发技术栈

  6. javascript 代码实例

    数组去重 function unique(arr){ if(!Array.isArray(arr)){ console.log('type error!'); return; } arr = arr. ...

  7. 【C#】上机实验八

    1. 设计一个窗体应用程序,模拟写字板应用程序的基本功能.具体功能要求如下: (1)“文件”菜单中有“新建”.“打开”.“保存”.“退出”子菜单. (2)“编辑”菜单中有“剪切”.“复制”.“粘贴”. ...

  8. git clone一个仓库下的单个文件【记录】

    注意:本方法会下载整个项目,但是,最后出现在本地项目文件下里只有需要的那个文件夹存在.类似先下载,再过滤. 有时候因为需要我们只想gitclone 下仓库的单个或多个文件夹,而不是全部的仓库内容,这样 ...

  9. 解决springboot 新版本 2.1.6 spring-boot-starter-actuator 访问报404

    pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

  10. idea 终端terminal修改git bash

    1 Ctrl+Alt+s 打开设置修改shell path 2 Alt +12 或View + Tool Windows + Terminal 修改成功