如何基于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


猜你喜欢
- 本文实例讲述了java计算给定字符串中出现次数最多的字母和该字母出现次数的方法。分享给大家供大家参考,具体如下:import Java.ut
- 对象持久化是指将内存中的对象保存到可永久保存的存储设备中(如磁盘)的一种技术。本文介绍的是除数据库之外的几种对象持久化方式。具体如下:保存成
- java中对数组进行排序使用Array.sort() 这个默认是升序@Test public void index4(){ &n
- AuditEnum.cs:public enum AuditEnum{ Holding=0, Audit
- 一、什么是代理?指为一个目标对象提供一个代理对象, 并由代理对象控制对目标对象的引用. 使用代理对象, 是为了在不修改目标对象的基础上,增强
- Android中的Selector的用法 <?xml version="1.0" encoding=&q
- 一、效果图:二、导入 jar 包1.由于这是大神写好封装起来的一个框架,所有我们使用前得先下载相关的 jar 包第一种:maven<!
- SpringBoot线程池和Java线程池的用法和实现原理使用默认的线程池方式一:通过@Async注解调用public class Asyn
- Struts2是Struts社区和WebWork社区的共同成果,我们甚至可以说,Struts2是WebWork的升级版,他采用的正是WebW
- 前言很多人之前编写Java代码都是用的Eclipse,确实Eclipse是一个很好的工具,熟悉了之后用起来很方便,但是没办法,很多公司都强制
- 前言项目流程图如下:这里我们通过:163邮箱来实现激活码发送qq邮箱来进行接收学习之前需要掌握的知识springboot的基本使用方法mys
- int n;int &m = n;在C++中,多了一个C语言没有的引用声明符&,如上,m就是n的引用,简单的说m就是n的别名
- 本章是后续学习的基石,只有充分理解了分布式系统的概念和面临的问题,以及ZooKeeper内部的概念,才能懂得ZooKeeper是如何对分布式
- Java List 用法实例详解Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解
- 一、配置文件内容mybatis.xml就是Mybatis的全局配置文件。全局配置文件需要在头部使用约束文件。<?xml version
- 什么是代理代理就是给目标对象一个代理对象,并由代理对象控制目标的引用。为什么要使用代理模式1、通过引入代理对象的方式,可以间接的访问目标对象
- 一. string的构造函数的形式:string str:生成空字符串string s(str):生成字符串为str的复制品string s
- 前言ParametersInterceptor * 其主要功能是把ActionContext中的请求参数设置到ValueStack中,如果栈
- 圆形识别方案识别流程判断是否为封闭图形;根据圆的方程,取输入点集中的1/6、3/6、5/6处的三个点,求得圆的方程,获取圆心及半径;取点集中
- 话不多说,直接上实例:一、获取集合内重复值public void GetDuplicateValue(){ List<st