首页 > 编程语言 >Java集合排序

Java集合排序

时间:2024-03-27 11:44:46浏览次数:25  
标签:sort Java Comparator int list 集合 Integer 排序

package com.example.demo;

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

public class TestApp {

    /**

    Comparable是一个内部比较接口,通常对象需要内部排序时直接实现

    Comparator是一个外部比较接口,通常在对象中没有实现排序接口而有需要进行排序时实现
    **/

    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(2);
        list.add(4);
        list.add(3);
        list.add(1);
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

        //1
        list.sort(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1;
            }
        });
        //2
        list.sort(Integer::compareTo);

        //3
        Collections.sort(list, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1;
            }
        });

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

        //倒序
        list.sort(Comparator.comparing(Integer::intValue).reversed());

        list.sort(Comparator.naturalOrder());



        //对象按某个字段排序
        //倒序
        Collections.sort(list,Comparator.comparing(Stu::getAge).reversed());
        //正序
        list.sort(Comparator.comparing(Stu::getAge));
    }
}

 

标签:sort,Java,Comparator,int,list,集合,Integer,排序
From: https://www.cnblogs.com/coderdxj/p/18098615

相关文章

  • java毕业设计基于微信小程序的图书馆预约[附源码]
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着移动互联网技术的飞速发展,微信小程序凭借其无需下载安装、使用方便的特点,已经成为人们日常生活中不可或缺的一部分。图书馆作为知识传播的重要场所,在......
  • Java语言程序设计2
    第二章、变量、数据变量、运算符、表达式一、变量1.概念:计算机中的一块内存空间,存储数据的基本单元2.变量的组成部分:数据类型,变量名,数据3.语法:(1)先声明,在赋值:    数据类型变量名;//声明    变量名=值;//值(2)声明同时并赋值:    数据类型变量......
  • 网络攻防中黑客常用的十大渗透测试演练系统,百款渗透测试工具集合,安卓防逆向、防动态分
    网络攻防中黑客常用的十大渗透测试演练系统,百款渗透测试工具集合,安卓防逆向、防动态分析、渗透测试及加固详细教程。对目标机器进行全面的渗透测试是一个复杂的过程,需要遵循一系列的步骤来确保系统的安全性。以下是一个详细的渗透测试流程,包括关键步骤和一些基本的命令或......
  • java的封装
    封装概述    java中的封装指的是将一系列有关的事物的共同属性和行为提取出来放到一个类中,隐藏对象的实行和现实细节,仅对外提供公共的访问方式的操作。这样说起来感觉很抽象,也不好理解,这里不妨举一个例子。将配置电脑这个动作看成封装。    这个要怎么理解呢......
  • Java进阶 - [1-4] 反射
      一、类加载区别当我们刚接触java语言的时候,我们最常见的代码应该就是初始化某个对象,然后调用该对象的方法。1、使用new创建对象,返回对象的引用。Studentstudent=newStudent();2、调用方法:student.say(); 当我们想在运行期才能指定具体对象的类型或调用的某个方法......
  • 浏览器工作原理与实践--渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的
    在上篇文章中,我们介绍了渲染流水线中的DOM生成、样式计算和布局三个阶段,那今天我们接着讲解渲染流水线后面的阶段。这里还是先简单回顾下上节前三个阶段的主要内容:在HTML页面内容被提交给渲染引擎之后,渲染引擎首先将HTML解析为浏览器可以理解的DOM;然后根据CSS样式表,计算出DOM......
  • 浏览器工作原理与实践--渲染流程(上):HTML、CSS和JavaScript,是如何变成页面的
    在上一篇文章中我们介绍了导航相关的流程,那导航被提交后又会怎么样呢?就进入了渲染阶段。这个阶段很重要,了解其相关流程能让你“看透”页面是如何工作的,有了这些知识,你可以解决一系列相关的问题,比如能熟练使用开发者工具,因为能够理解开发者工具里面大部分项目的含义,能优化页面卡......
  • Java使用AES加密
    publicclassAESUtil{publicstaticfinalStringalgorithm="AES";//AES/CBC/NOPaddin//AES默认模式//使用CBC模式,在初始化Cipher对象时,需要增加参数,初始化向量IV:IvParameterSpeciv=new//IvParameterSpec(key.getBytes());/......
  • 学习java第二十四天
    spring框架中有哪些不同类型的事件Spring提供了以下5种标准的事件:上下文更新事件(ContextRefreshedEvent):在调用ConfigurableApplicationContext接口中的refresh方法时被触发。上下文开始事件(ContextStartedEvent):当容器调用ConfigurableApplicationContext的Start方法开始......
  • 市场数据和金融数据API的获取步骤,支持Python、Java、Go等接入方式,轻松实现量化数据交
    今天我想分享一个非常实用的技术内容,即如何通过接口API来实现订阅并接入实时行情数据源的报价信息。这个技术可以帮助你获取最新的市场数据,为你的应用程序或交易策略提供及时的信息支持。接入实时行情数据源可以让你了解市场动态并快速作出决策,非常有助于优化你的交易策略和投资决......