首页 > 其他分享 >list集合的排序

list集合的排序

时间:2024-04-16 14:36:20浏览次数:22  
标签:list System userList User 集合 new 排序 out

list集合的排序

使用常用的sort方法排序和stream流的方式排序
package com.liucy.meiriyilian.sort;

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

/**
 * @Author liucy
 * @Date 2024/4/16 13:48
 * @Desc list集合排序的方式
 */
public class ListSortDemo {

    public static void main(String[] args) {
//        List<User> userList = List.of(
//                new User("111", "徐汇区", 20, 13564181485L),
//                new User("222", "浦东新区", 25, 13654782145L),
//                new User("333", "黄浦区", 30, 13765478921L)
//        );

        List<User> userList = new ArrayList<User>();
        userList.add(new User("111", "徐汇区", 40, 13564181485L));
        userList.add(new User("222", "浦东新区", 20, 13654782145L));
        userList.add(new User("333", "黄浦区", 25, 13765478921L));
        System.out.println("排序前");
        userList.forEach(System.out::println);
//        sortByCompare(userList);
        sortByStream(userList);

    }

    /**
     * 按照compare排序
     * @param userList
     */
    private static void sortByCompare(List<User> userList) {
        Collections.sort(userList, new Comparator<User>() {

            @Override
            public int compare(User o1, User o2) {
                if (o1.getAge() > o2.getAge()) {
                    return 1;
                } else if (o1.getAge() < o2.getAge()) {
                    return -1;
                } else {
                    return 0;
                }
            }
        });
        System.out.println("排序后");
        userList.forEach( user -> System.out.println(user.toString()));
    }

    private static void sortByStream(List<User> userList) {
        userList = userList.stream().sorted(Comparator.comparingInt(User::getAge)).collect(Collectors.toList());
        System.out.println("排序后");
        userList.forEach(System.out::println);
    }
}

标签:list,System,userList,User,集合,new,排序,out
From: https://www.cnblogs.com/gushilcy/p/18138035

相关文章

  • 常见的排序算法——希尔排序
    本文记述了希尔排序的基本思想和一份参考实现代码,并在说明了算法的性能后用随机数据进行了验证。◆思想给定元素之间的间隔h,将所有间隔为h的元素作为独立的待排序范围,可以得到h个这样的子范围。针对每个子范围执行插入排序,使得任意间隔为h的元素是有序的。然后缩小间距......
  • day08_我的Java学习笔记 (String类、ArrayList集合类)
    常用API(String、ArrayList)什么是APIAPI文档下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html1.String简单介绍【补充】:为什么java数据类型String是大写?1.1String类概述1.2String类创建对象的2种方式1.3String......
  • day09_我的Java学习笔记 (ATM系统_理解并学会使用break、return、continue、Random、S
    ATM系统1.项目介绍与功能演示1.1系统准备、首页设计Account.java每个用户的账户信息都是一个对象,需要提供账户类。01.在Account类中定义系统相关的属性信息(卡号、姓名、密码、余额、取现额度)02.定义Getter和Setter方法03.定义有参构造器04.定义无参构造......
  • Java中LinkedList
    LinkedList的长度是可变的。LinkedList是Java中的一个双向链表实现,它可以动态地增加或减少元素,因此其长度是可变的。这种动态性使得LinkedList在需要频繁插入或删除元素时具有一定的优势,因为它不需要像数组那样进行元素的移动操作。当你向LinkedList中添加或删除元素时,它......
  • ios plist文件制作
    iosplist文件的格式,新建文件后缀为.plist,需要有ipa包才可以,且是https替换ipa地址:https://up.sosovp.com/download/2.ipa替换icon地址:https://cdn.xinstall.com/image/deff_icon.png替换app名字:金盾<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEplistPUBLIC......
  • ES6集合操作
    <!DOCTYPEhtml><html><head> <metacharset="utf-8"> <metaname="viewport"content="width=device-width,initial-scale=1"> <title>ES6数组</title></head><body> <scrip......
  • 合并k个已排序链表
    利用新的ArrayList合并k个链表 遍历提供给我们的数组,依次得到各个头结点。依次遍历每个头结点下的链表,把他们加入新的数组中。利用Collections.sort()方法得到有序的数组最后把这个新的数组转换成链表并返回。publicListNodemergeKLists(ArrayList<ListNode>lists){......
  • element表格自带sortable属性排序错乱问题
       参考:https://blog.csdn.net/qq_40004867/article/details/129835446?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-129835446-blog-126339196.235%5Ev43%5Epc_blog_bottom_relevance_base4&dept......
  • 8.集合、泛型、枚举、注解、反射
    第八章【集合、泛型、枚举、注解、反射】一、集合1、概述集合是JavaAPI中提供的一种容器工具,可以用来存储多个数据。集合框架中主要有三个要素组成:接口实现类数据结构集合中不可以存放基本类型集合按照其存储结构可以分为两大类:java.util.Collection 单值存放......
  • 八大排序算法
    八大排序冒泡排序/*稳定排序时间复杂度:O(n^2)空间复杂度:O(1)*/publicstaticvoidbubbleSort(int[]nums){for(inti=0;i<nums.length-1;i++){booleanflag=false;for(intj=0;j<nums.length......