List集合排序找出其中的最大和最小值

获取List集合中的最大值和最小值 实现获取List集合中的最大值和最小值共有以下两种方式,根据自己的场景选择合适的方法。 阅读详情

主要讲述对list进行排序的几种方式以及找出list中的最大值和最小值

一、先来个简单的开胃菜—最简单的排序

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @业务描述:
 * @package_name: PACKAGE_NAME
 * @project_name: calculator-factory
 * @author: ratelfu@qq.com
 * @create_time: 2019-05-14 11:18
 * @copyright (c) ratelfu 版权所有
 */
public class ListSort {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
        list.add(new Integer(5));
        list.add(new Integer(13));
        list.add(new Integer(4));
        list.add(new Integer(9));
        Collections.sort(list);
        System.out.println(list.toString());
    }
}

程序运行结果:

[4, 5, 9, 13],这种简单的排序直接按照自然顺序进行升序排列。

二、list参数类型相对复杂的排序

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @业务描述:
 * @package_name: PACKAGE_NAME
 * @project_name: calculator-factory
 * @author: ratelfu@qq.com
 * @create_time: 2019-05-14 10:43
 * @copyright (c) ratelfu 版权所有
 */
public class UserMax {
    public static void main(String[] args) {
        List<User> list = new ArrayList<User>();
        list.add(new User("张三", 5));
        list.add(new User("李四", 30));
        list.add(new User("王五", 19));
        list.add(new User("陈十七", 17)); // 陈十七永远十七岁
        Collections.sort(list); // 按年龄排序
        System.out.println(list.toString());
    }
}


class User implements Comparable<User> {

    private String name; //姓名

    private int age; // 年龄


    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // getter && setter
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User [name=" + name + ", age=" + age + "]";
    }

    @Override
    public int compareTo(User user) {   //重写Comparable接口的compareTo方法,
        return this.age - user.getAge();// 根据年龄升序排列,降序修改相减顺序即可
    }
}


程序运行结果:根据年龄升序排列

[User [name=张三, age=5], User [name=陈十七, age=17], User [name=王五, age=19], User [name=李四, age=30]]

三、匿名内部类实现排序

匿名内部类实现排序能本次方法范围内覆盖掉原有的类排序规则。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * @业务描述: 匿名内部实现Comparable接口并找出最大值和最小值
 * @package_name: PACKAGE_NAME
 * @project_name: calculator-factory
 * @author: ratelfu@qq.com
 * @create_time: 2019-05-14 10:43
 * @copyright (c) ratelfu 版权所有
 */
public class UserAnonymous {


    public static void main(String[] args) {
        List<User> list = new ArrayList<User>();
        list.add(new User("张三", 5));
        list.add(new User("李四", 30));
        list.add(new User("王五", 19));
        list.add(new User("陈十七", 17)); // 陈十七永远十七岁
        Collections.sort(list, new Comparator<User>() {
            @Override
            public int compare(User u1, User u2) {
                int diff = u1.getAge() - u2.getAge();
                if (diff > 0) {
                    return 1;
                } else if (diff < 0) {
                    return -1;
                }
                return 0; //相等为0
            }
        }); // 按年龄排序
        System.out.println(list.toString());
    }
}

运行结果:[User [name=张三, age=5], User [name=陈十七, age=17], User [name=王五, age=19], User [name=李四, age=30]]

总结:以上就是list排序经常用的几种方法,前两种方法都是通过实体实现Comparable接口并重写compareTo方法,第一种方式之所以没实现接口并实现compareTo方法,通过查看Interger类源码可以看到,java已经帮我们实现好了,所以不用再次写
在这里插入图片描述
在这里插入图片描述
最后一种方法通过匿名内部类实现Comparator接口实现compare方法,通过自定义比较器来实现排序。


四、常规方法找出list中的最大值以及最小值


import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @业务描述:
 * @package_name: PACKAGE_NAME
 * @project_name: calculator-factory
 * @author: ratelfu@qq.com
 * @create_time: 2019-05-14 11:18
 * @copyright (c) ratelfu 版权所有
 */
public class ListSort {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
        list.add(new Integer(5));
        list.add(new Integer(13));
        list.add(new Integer(4));
        list.add(new Integer(9));
        Collections.sort(list);
        System.out.println(list.toString());


        Integer max = list.get(0);
        Integer min = list.get(0);

        for (int i = 0; i < list.size(); i++) {
            if (min > list.get(i)) {
                min = list.get(i);
            }
            if (max < list.get(i)) {
                max = list.get(i);
            }
        }
        System.out.println("最大值" + max);
        System.out.println("最小值" + min);

    }
}


五、实现Comparable接口并找出最大值和最小值

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @业务描述:常规方法实现Comparable接口并找出最大值和最小值
 * @package_name: PACKAGE_NAME
 * @project_name: calculator-factory
 * @author: ratelfu@qq.com
 * @create_time: 2019-05-14 10:43
 * @copyright (c) ratelfu 版权所有
 */
public class UserMaxMin {
    public static void main(String[] args) {
        List<User> list = new ArrayList<User>();
        list.add(new User("张三", 5));
        list.add(new User("李四", 30));
        list.add(new User("王五", 19));
        list.add(new User("陈十七", 17)); // 陈十七永远十七岁
        User max = Collections.max(list);
        System.out.println("最大值"+max.toString());
        User min = Collections.min(list);
        System.out.println("最小值"+min.toString());


    }
}


class User implements Comparable<User> {

    private String name; //姓名

    private int age; // 年龄


    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // getter && setter
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User [name=" + name + ", age=" + age + "]";
    }

    @Override
    public int compareTo(User user) {   //重写Comparable接口的compareTo方法,
        return this.age - user.getAge();// 根据年龄升序排列,降序修改相减顺序即可
    }
}

六、匿名内部类实现查找list中的最大值和最小值


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * @业务描述: 匿名内部实现Comparable接口并找出最大值和最小值
 * @package_name: PACKAGE_NAME
 * @project_name: calculator-factory
 * @author: ratelfu@qq.com
 * @create_time: 2019-05-14 10:43
 * @copyright (c) ratelfu 版权所有
 */
public class UserAnonymous {


    public static void main(String[] args) {
        List<User> list = new ArrayList<User>();
        list.add(new User("张三", 5));
        list.add(new User("李四", 30));
        list.add(new User("王五", 19));
        list.add(new User("陈十七", 17)); // 陈十七永远十七岁
        User max = Collections.max(list, new Comparator<User>() {
            @Override
            public int compare(User u1, User u2) {
                int diff = u1.getAge() - u2.getAge();
                if (diff > 0) {
                    return 1;
                } else if (diff < 0) {
                    return -1;
                }
                return 0; //相等为0
            }
        });// 按年龄排序
        System.out.println("最大值"+max.toString());

        User min = Collections.min(list, new Comparator<User>() {
            @Override
            public int compare(User u1, User u2) {
                int diff = u1.getAge() - u2.getAge();
                if (diff > 0) {
                    return 1;
                } else if (diff < 0) {
                    return -1;
                }
                return 0; //相等为0
            }
        });// 按年龄排序
        System.out.println("最小值"+min.toString());
    }
}
大模型系统构建的“三驾马车”——Prompt、Context与Harness工程 在LLM应用开发的早期阶段,我们热衷于比拼“提示词”的精妙程度。那时,一个精心构造的思维链CoT就能让模型的表现提升10%以上。随着大模型从“玩具”走向“生产系统”,我们逐渐意识到:单一的 Prompt 只是起点,而非终点。 真正的工业级应用,需要构建一套三层递进的工程体系——Prompt Engineering、Context Engineering 和 Harness Engineering。 阅读详情

相关推荐

CMOS传输门实战:如何用模拟开关优化你的电路设计(附常见问题排查)

本文深入探讨了CMOS传输门在电路设计中的实战应用与优化策略。文章从核心参数选型入手,详细分析了导通电阻、电荷注入等关键特性对电路性能的影响,并提供了多路复用器构建、精密电路应用等实战架构。同时,重点分享了PCB布局、电源去耦的工程细节,以及开关不导通、信号失真、高频性能不足等常见问题的系统性排查指南,旨在帮助硬件工程师充分发挥CMOS模拟开关的效能,提升电路设计的可靠性与精度。

js777的博客 451

Java List获取集合中的最大值或最小值

1.List集合中的元素为基本类型,我们可以使用java.util中的Collections提供的方法,来取出最大值或者最小值。 (1)Integer类型 package com.yuxuange.study.test; import java.util.*; public class Test { public static void main(String[] args) { List<Integer> list = new LinkedList<>

羽轩阁 7万+

MuJoCo与Isaac Sim的无缝对接:利用USD导出功能实现强化学习场景的跨平台迁移

本文详细介绍了如何通过USD导出功能实现MuJoCo与Isaac Sim的无缝对接,助力强化学习场景的跨平台迁移。文章解析了USD格式的核心优势,包括分层合成、物理属性继承和时间轴动画,并提供了从MJCF到USD的完整转换流程及在Isaac Sim中的高级应用技巧,帮助开发者高效迁移和优化强化学习环境。

weixin_29073241的博客 517

List集合取出最大值和最小值

1.第一种方法,是采用遍历的方法来获取最大值和最小值  2.第二种方法是采用Collections集合工具类来取出集合的最大值或者最小值

qq79907141的博客 7万+

ComfyUI实战:AnimateDiff与ControlNet结合,打造无缝风格化视频转绘

本文详细介绍了如何利用ComfyUI平台,结合AnimateDiff与ControlNet插件,实现高质量的视频风格化转绘。通过搭建节点工作流、调整关键参数,有效解决画面闪烁与失真问题,并分享了进阶玩法与常见问题解决方案,帮助用户轻松打造流畅、风格统一的动态视觉效果。

weixin_29039773的博客 339

从安装到跑通第一个例程:Halcon 20.11深度学习版环境搭建全记录

本文详细记录了Halcon 20.11深度学习版环境搭建的全过程,从安装配置到运行第一个例程,特别针对CUDA版本冲突、算子验证和样本数据预处理等常见问题提供解决方案。通过实战案例展示PCB缺陷分类流程,帮助工程师快速掌握工业级图像处理技术,提升深度学习模型在工业质检中的应用效率。

weixin_28739079的博客 221

List集合取出最大值和最小值和索引

1.第一种方法,是采用遍历的方法来获取最大值和最小值 2.第二种方法是采用Collections集合工具类来取出集合的最大值或者最小值 java中对list求取最大最小值的同时,获取到最大/小值在list中的索引值 在list中使用了Collections.min(list)获取到了最小值,但是我同时也希望得到最小值在list中的索引值。 最好不要遍历list获取索引值。 List<Integer>numList=newArrayList<Integer>(...

dxyzhbb的博客 1万+

【回归预测】GRNN广义回归神经网络-MATLAB

广义回归神经网络(GRNN)是一种基于径向基函数(RBF)的神经网络模型,主要用于非线性回归任务。与传统的回归分析方法相比,GRNN具有更强的非线性映射能力和学习速度,能够快速逼近复杂的非线性关系。输入层、模式层、求和层和输出层。输入层接收输入数据,模式层通过径向基函数将输入映射到高维空间,求和层对模式层的输出进行加权求和,最后输出层生成预测结果。GRNN的核心思想是利用高斯核函数计算输入与训练样本之间的相似度,然后根据相似度加权平均得到预测值。

2303_77200324的博客 1091

aviator 实现 List 的求和、排序、最大、最小值

jdk build 1.7 IDE: myeclipse 详情见代码和附件:    ICalculateService.java   package com.bugyun.service; import java.util.List; import com.bugyun.ErrorCode; import com.bugyun.exception.CalculateE...

bug_yun的博客 3211

实战分享:如何用本地替换和插桩调试搞定Kasada最新版x-kpsdk-cd环境检测

本文深入解析Kasada最新版x-kpsdk-cd环境检测机制,提供动态请求拦截、本地替换和函数插桩等实战调试策略。通过Proxy保护破解、关键函数断点调试和环境检测对抗方案,帮助逆向工程师有效应对从280位扩展到294位的加密数组挑战,实现高效补环境调试。

weixin_29251567的博客 570

发那科机器人Modbus通讯配置全攻略:从IP设置到信号调试

本文详细介绍了发那科机器人Modbus通讯的配置方法,从基础认知到IP设置、端口配置、信号调试及故障排查。重点讲解了UOP和DI/DO信号的配置技巧,帮助工程师快速实现机器人与PLC的稳定通讯,提升自动化系统效率。

weixin_27872611的博客 623

求int型List集合的最小值最大值排序

之前碰到了一个求List<Integer>当中最小值的问题,有用for循环冒泡排序的,后来发现下面的更简单:@Test public void test(){ List<Integer> integers = new ArrayList<Integer>(); integers.add(13); integers.add(113);

Fightinglongshao的博客 6636

【数据集】中国各类水文专业常用数据集合集

对中国各类水文专业常用数据集进行整理并总结

WW、forever的博客 9303

Java集合之List集合

Java集合之List集合 Java集合类是一种特别有用的工具类,可用于存储数量不等的对象,并可以实现常用 的数据结构,如栈、队列等。除此之外,Java集合还可用于保存具有映射关系的关联 数组。Listj集合代表元素有序可重复的集合,每个元素有对应的索引,可以通过List集合的索引获取指定位置的集合元素,添加的元素按钮默认顺序设置索引,索引从0开始,依次累加。 1、 List集合常用方法。 add...

weixin_44543135的博客 342

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

list stream 最大和最小值_java8 list求最大值、最小值、平均值、求和、中位数、属性排序、去重...

import org.junit.Test;import java.text.SimpleDateFormat;import java.util.*;import java.util.stream.Collectors;import static java.util.Comparator.comparingLong;import static java.util.stream.Collectors...

weixin_39528219的博客 446

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

给list中的集合进行倒叙排序

今天遇到list的倒序问题,以前是自己写for循环来手动倒序,其实JAVA 已经为我们提供了类似的功能,Collections类是一个java的工具类,在JAVA.UTIL包下面,提供了集合的复制和倒序,求集合元素的最大值,最小值等专门针对集合操作的功能,list也属于java集合框架中的重要的一员.Collections.copy()就是对java list的复制,Collections.r

qq_20670449的博客 3万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jdk8 Lambda表达式 集合过滤,排序,最大值,最小值,平均值等操作

package cn.sh.ideal.jdk8; import cn.sh.ideal.bean.UserBean; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; /** * Lambda...

jucks2611的博客 1万+

C#使用系统自带的List集合实现内容排序、获取最大、最小值

一、List<T> 中T为封装内容的排序 ①编写学生类、 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DelegateAndEvent { class Student { //字段:名字 ...

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 1万+

list stream 最大和最小值_Java8特性:Stream流初体验,

Java8新增的功能中,要数lambda表达式和流API最为重要了这篇文章主要介绍流API的基础,也是流API系列的第一篇文章,整个系列看完,lambda表达式和函数式接口的分析运用能力你应该也一起掌握了,建议大家一起服用。话不多说,直奔主题什么是流API? 它能做一些什么?我们应该知道(绝对知道~)API是一个程序向使用者提供的一些方法,通过这些方法就能实现某些功能。所以对于流API来说,重点是...

weixin_28676289的博客 1980

List相关操作某项求和,最大最小值等

最近做报表,遇到很多求和,最大最小值等相关操作,看到这个博客写的很不错,整理一下。 list集合某项最大最小值,以及求和 // 从数据库去除数据数据条数为五条 // 由于在求和的过程当中避免不了存在 null 或者 空字符串的数据 // 因此可使用filter()进行条件筛选 具体筛选条件 根据业务而定 List<Person> personList = personService....

y_yanghao的博客 418

java获取list集合中最大值最小值

在java API Collections工具类里面有两个方法: Collections.max(list);//获取最大值 Collections.min(list);//获取最小值 这样可以直接获取,不用再使用排序取第一个或者最后一个。

小四是个程序猿的博客 8294

List<Integer> 求和,最大值,最小值,平均值,排序,去重

java list 泛型为 包装类的数字类型时的 求和,最大值,最小值,平均值,排序,去重

qq_37739437的博客 3553

单列集合(Collection,List,Set集合的详细介绍)

一.集合整体的体系1.Collection集合体系的相关介绍2.单列表集合的工具类Collections类3.Collection接口和Conllections工具类的区别 二.集合中的根接口:Collection接口1.Collection接口中的方法2.遍历集合(用根接口的迭代器iterator();)3.集合与数组的互转 集合转换为数组:数组转换为集合:(asList()) 三.Collection的子接口List接口 四 .LIst接口的实现类 五.Collection的子接口Set接口中的实现类

naoguoteng的博客 2354

获取list中最大最小值平均值和排序等方法

获取集合中最大值,list中对象的某个属性的最大值最小值平均值以及筛选_正人君子!的博客-优快云博客_list根据对象属性取最大值

liuyu1942的专栏 847

Kotlin - 集合 Collection(List、Set)

只读接口提供访问元素的操作,可变接口通过扩展只读接口提供变更元素的操作。

HugMua的博客 2872
上一篇: 八步完成CentOS7下安装mysql并允许远程连接
下一篇: Spring Boot中使用Swagger2构建强大的RESTful API文档
T-OPEN
T-OPEN 新星创作者: Java技术领域 新星创作者: Java技术领域
博客等级 码龄9年 2万+粉丝 241原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

T-OPEN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值