如何基于Java实现对象List排序
作者:龙凌云端 发布时间:2022-01-28 03:59:16
标签:Java,对象,List,排序
这篇文章主要介绍了如何基于Java实现对象List排序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
按照对象中的某个属性,对对象List进行排序。
以初唐四杰的成绩排名为例,对诗人进行排序。
Java实现如下:
1、诗人(Poet)类结构,定义如下:
/**
* Created by Miracle Luna on 2020/1/11
*/
public class Poet {
private String name;
private Double score;
public Poet(String name, Double score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getScore() {
return score;
}
public void setScore(Double score) {
this.score = score;
}
@Override
public String toString() {
return "Poet{" +
"name='" + name + '\'' +
", score=" + score +
'}';
}
}
2、诗人按照成绩排名,代码如下:
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
/**
* Created by Miracle Luna on 2020/1/11
*/
public class PoetSort {
public static void main(String[] args) {
List<Poet> poetList = new ArrayList<Poet>();
Poet poet1 = new Poet("杨炯", 94.0);
poetList.add(poet1);
Poet poet2 = new Poet("卢照邻", 92.5);
poetList.add(poet2);
Poet poet3 = new Poet("骆宾王", 95.0);
poetList.add(poet3);
Poet poet4 = new Poet("王勃", 99.5);
poetList.add(poet4);
// 初始顺序
System.out.println("==> 初始顺序如下:");
poetList.forEach(poet -> System.out.println(poet.toString()));
// 按照分数排名(从高到低)
poetList.sort(new Comparator<Poet>() {
@Override
public int compare(Poet poet1, Poet poet2) {
Double score1 = poet1.getScore();
Double score2 = poet2.getScore();
return score2.compareTo(score1);
}
});
System.out.println("\n==> 按照分数排名(从高到低)如下:");
poetList.forEach(poet -> System.out.println(poet.toString()));
// 按照分数排名(从低到高)
poetList.sort(new Comparator<Poet>() {
@Override
public int compare(Poet poet1, Poet poet2) {
Double score1 = poet1.getScore();
Double score2 = poet2.getScore();
return score1.compareTo(score2);
}
});
System.out.println("\n==> 按照分数排名(从低到高)如下:");
poetList.forEach(poet -> System.out.println(poet.toString()));
}
}
3、运行结果如下:
==> 初始顺序如下:
Poet{name='杨炯', score=94.0}
Poet{name='卢照邻', score=92.5}
Poet{name='骆宾王', score=95.0}
Poet{name='王勃', score=99.5}
==> 按照分数排名(从高到低)如下:
Poet{name='王勃', score=99.5}
Poet{name='骆宾王', score=95.0}
Poet{name='杨炯', score=94.0}
Poet{name='卢照邻', score=92.5}
==> 按照分数排名(从低到高)如下:
Poet{name='卢照邻', score=92.5}
Poet{name='杨炯', score=94.0}
Poet{name='骆宾王', score=95.0}
Poet{name='王勃', score=99.5}
来源:https://www.cnblogs.com/miracle-luna/p/12181535.html
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- SpringBoot集成Redis 1.添加redis依赖<dependency> <groupId
- foreach遍历是C#常见的功能,而本文通过实例形式展现了C#使用yield关键字让自定义集合实现foreach遍历的方法。具体步骤如下:
- 1.概览该教程中,我将向你展示:如何在测试时设置spring boot 日志级别。虽然我们可以在测试通过时忽略日志,但是如果需要诊断失败的测
- 我计划在后续的一段时间内,写一系列关于java 9的文章,虽然java 9 不像Java 8或者Java 11那样的核心java版本,但是还
- 1、一个示例回顾Future一些业务场景我们需要使用多线程异步执行任务,加快任务执行速度。JDK5新增了Future接口,用于描述一个异步计
- 之前文章介绍过了Fluent基本框架等,其中有几个重要的方法用到了IQuery和IUpdate对象。 这2个对象是FluentMybatis
- 效果图如下所示: 1、在Adapter中加入如下代码<pre style="background-color:#2
- Java基础将Bean属性值放入Map中的实例利用发射将Java对象的属性值以属性名称为键,存储到Map中的简单实现。包括自身属性及从父类继
- BufferedReader读取文件指定字符集问题默认的读取方式BufferedReader bufferedReader = new Bu
- 一、Arthas官方文档https://arthas.aliyun.com/doc/二、springBoot整合方式1、pom文件引入<
- 本文实例为大家分享了java根据网络地址保存图片的具体代码,供大家参考,具体内容如下import java.io.BufferedInput
- 在进行Java打印输出,进行查看字段值的时候,觉得每次写了System.out.println之后,正式发布的时候,还得一个个的删掉,太麻烦
- MyBatis Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。Mybati
- 1.简介学了几周的Java,闲来无事,写个乞丐版的扫雷,加强一下Java基础知识。2.编写过程编写这个游戏,一共经历了三个阶段,编写了三个版
- 在java项目开发中。最开始换行符大家一般是在idea中设置新文件为LF,并且对旧文件通过IDEA下方的点击来更换换行符。很显然,对于几千文
- oshi查看cpu信息OSHI可以跨平台查看服务器信息,其中cpu负载信息为当前占用CPU的时间。需要在一段时间内获取两次,然后相减得出这段
- 本文实例为大家分享了java实现小球碰撞的具体代码,供大家参考,具体内容如下这次我们做一个小球的碰撞的游戏,规则是:按下添加按钮,窗口的中心
- 本文的目的是要实现左右滑动的指引效果。那么什么是指引效果呢?现在的应用为了有更好的用户体验,一般会在应用开始显示一些指引帮助页面,使用户能更
- 这篇文章主要介绍了Spring Boot Debug调试过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- 在实践中,项目的某些配置信息是需要进行加密处理的,以减少敏感信息泄露的风险。比如,在使用Druid时,就可以基于它提供的公私钥加密方式对数据