【java】对ArrayList中的元素进行排序的几种方式

这篇具有很好参考价值的文章主要介绍了【java】对ArrayList中的元素进行排序的几种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

对ArrayList中的元素进行排序的几种方式

一、使用Collections工具类

1、对基本类型排序

通过Collections.sort()对基本类型排序默认是以升序排序

// 1.Collections.sort()默认按照升序排序
List<Integer> integerList = new ArrayList<>();
Collections.addAll(integerList,1,2,6,5,5,4,55,4,5,5,4,5,2,4,6,2,45);
Collections.sort(integerList);
System.out.println(integerList);
2、对字符串类型排序

对字符串类型排序默认按照首字母a-z排序

// 2.对字符串类型排序
List<String> strings = new ArrayList<>();
Collections.addAll(strings,"d","gsf","trh","fsd","an");
Collections.sort(strings);
System.out.println(strings);
3、对对象排序

如何使用Collections对对象排序呢?

java arraylist排序,java基础,java,Collections,ArrayList,Comparable接口,排序算法

其实只需要让我们的数据类型实现Comparable接口即可,下面定义一个实现Comparable接口的学生类,并且实现compareTo方法,让学生类只比较年龄。

/**
 * 学生
 *
 * @author ez4sterben
 * @date 2023/07/18
 */
public class Student implements Comparable<Student> {

    private String id;
    private String name;
    private Integer age;
    private String sex;

    @Override
    public String toString() {
        return "Student{" +
                "age=" + age +
                '}';
    }

    public Student(Integer age) {
        this.age = age;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public int compareTo(Student o) {
    	// 这种是升序
        return this.getAge() - o.getAge();
        // 这种是降序
        // return o.getAge() - this.getAge();
    }
}

排序方法和正常使用一样,直接把整个list传入即可

// 3.对对象排序
        List<Student> students = new ArrayList<>();
        Collections.addAll(students,
                new Student(18),
                new Student(26),
                new Student(20),
                new Student(16),
                new Student(12));
        System.out.println(students);
        Collections.sort(students);
        System.out.println(students);

java arraylist排序,java基础,java,Collections,ArrayList,Comparable接口,排序算法

二、使用stream流

// 2.lambda表达式
        Stream<Integer> sorted = integerList.stream().sorted();
        System.out.println(Arrays.toString(sorted.toArray()));

java arraylist排序,java基础,java,Collections,ArrayList,Comparable接口,排序算法

三、使用排序算法(以冒泡排序为例)

// 3.直接使用排序算法(以冒泡排序为例)
        for(int i = 0; i < integerList.size() - 1; i++){
            for(int j = 0; j < integerList.size() - i - 1; j++){
                if(integerList.get(j) > integerList.get(j + 1)){
                    Integer temp = integerList.get(j);
                    integerList.set(j, integerList.get(j + 1));
                    integerList.set(j + 1, temp);
                }
            }
        }
        System.out.println(integerList);

java arraylist排序,java基础,java,Collections,ArrayList,Comparable接口,排序算法文章来源地址https://www.toymoban.com/news/detail-709430.html

四、测试类整体代码

import java.util.*;
import java.util.stream.Stream;

/**
 * 数组列表排序
 *
 * @author ez4sterben
 * @date 2023/07/19
 */
public class ArrayListSort {
    public static void main(String[] args) {
        List<Integer> integerList = new ArrayList<>();
        Collections.addAll(integerList,1,2,6,5,5,4,55,4,5,5,4,5,2,4,6,2,45);
        // 1.Collections.sort()默认按照升序排序
        Collections.sort(integerList);
        System.out.println(integerList);
        // 2.对字符串类型排序
        List<String> strings = new ArrayList<>();
        Collections.addAll(strings,"d","gsf","trh","fsd","an");
        Collections.sort(strings);
        System.out.println(strings);
        // 3.对对象排序
        List<Student> students = new ArrayList<>();
        Collections.addAll(students,
                new Student(18),
                new Student(26),
                new Student(20),
                new Student(16),
                new Student(12));
        System.out.println(students);
        Collections.sort(students);
        System.out.println(students);

        // 2.lambda表达式
        Stream<Integer> sorted = integerList.stream().sorted();
        System.out.println(Arrays.toString(sorted.toArray()));

        // 3.直接使用排序算法(以冒泡排序为例)
        for(int i = 0; i < integerList.size() - 1; i++){
            for(int j = 0; j < integerList.size() - i - 1; j++){
                if(integerList.get(j) > integerList.get(j + 1)){
                    Integer temp = integerList.get(j);
                    integerList.set(j, integerList.get(j + 1));
                    integerList.set(j + 1, temp);
                }
            }
        }
        System.out.println(integerList);

    }
}

到了这里,关于【java】对ArrayList中的元素进行排序的几种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS中隐藏页面元素的几种方式和区别

    前言、 在平常的样式排版中,我们经常遇到将某个模块隐藏的场景,通过css隐藏的元素方法有很多种,它们看起来实现的效果是一致的,但实际上每一种方法都有一丝轻微的不同,这些不同决定了在一些特定场合下使用哪一种方法。 实现方法综合、 通过css实现隐藏元素方法

    2024年01月20日
    浏览(70)
  • Hive的几种排序方式、区别,使用场景

    Hive 支持两种主要的排序方式: ORDER BY 和 SORT BY 。除此之外,还有 DISTRIBUTE BY 和 CLUSTER BY 语句,它们也在排序和数据分布方面发挥作用。 1. ORDER BY ORDER BY 在 Hive 中用于对查询结果进行全局排序,确保结果集是全局有序的。但是,使用 ORDER BY 时,Hive 会将所有数据集中到一个

    2024年02月02日
    浏览(42)
  • 微信小程序wxss定位/选择/查找元素的几种方式

    wxss定位、选择、查找元素的几种方式与css类似,下面介绍常用的几种: 选择器 样例 样例描述 .class .intro 选择所有拥有 class=\\\"intro\\\" 的组件

    2024年01月16日
    浏览(55)
  • js中对象进行赋值操作的几种方式

    最近开发碰到多参数赋值的问题,参数之间总是互相影响,导致出现一些奇怪的bug,查阅了相关资料,全部在这里了,记录一下,希望可以帮到有需要的人 上述代码中,obj1和obj2指向了同一块内存区域,修改obj1的age属性,也会影响到obj2的age属性。这是因为obj2只是复制了obj

    2024年02月02日
    浏览(42)
  • 前端技术中的几种居中方式

    1、使用margin:0px auto可以使盒子水平居中,但要设置宽度。 2、在父元素中使用text-align:center可以将子元素设置水平居中,但子元素必须为行内元素或行内块元素。 3、使用绝对定位,父相子绝的原则,在子元素中设置left:50%和transform:translateX(-50%)。可以不设置宽高。       这里

    2024年02月04日
    浏览(49)
  • 【QT深入理解】QT中的几种常用的排序函数

    排序函数是一种在编程中常用的函数,它可以对一个序列(如数组,列表,向量等)中的元素进行排序,使其按照一定的顺序排列。排序函数可以根据不同的排序算法,如冒泡排序,选择排序,插入排序,快速排序,归并排序,堆排序等,实现不同的排序效果。排序函数的作

    2024年02月03日
    浏览(48)
  • 一文道破将bean注入到Spring中的几种方式

    前言: 前两天有学妹问我如何将bean注入到Spring中,虽问题较简单,但还是写此文以告之。 在Java的Spring框架中,将bean注入到容器中是核心概念之一,这是实现依赖注入的基础。Spring提供了多种方式来将bean注入到容器中。 写此文,同时也希望这篇文章能帮助到各位路过的大佬

    2024年04月15日
    浏览(48)
  • Java 终止线程的几种方式

    所谓正常运行结束,就是程序正常运行结束,线程自动结束。 一般run()方法执行完,线程就会正常结束,然而,常常有些线程是伺服线程。他们需要长时间的运行,只有在外部某些条件满足的情况下,才能关闭这些线程。使用一个变量来控制循环,例如:最直接的方法就是设

    2024年02月07日
    浏览(53)
  • Java创建对象的几种方式

    在Java中,对象是程序中的一种基本元素,它通过类定义和创建。本篇教程旨在介绍Java中创建对象的几种方式,包括使用new、反射、clone、反序列化等方式。 在Java中,最常用的创建对象方式是使用new。使用new创建对象的具体步骤如下: 使用new并指定

    2024年02月12日
    浏览(44)
  • Java实现异步的几种方式

    普通线程实现异步,但频繁创建、销毁线程比较耗资源,所以一般交给线程池执行 结果: Future异步 和普通线程实现异步区别不大,只是使用Future是要获取执行后的返回值 结果: Spring的@Async异步 使用@Async注解实现异步的前提是需要在启动类上标注@EnableAsync来开启异步配置

    2024年02月04日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包