java中ArrayList的两种排序方法实例

 更新时间:2021年07月07日 14:51:46   作者:光羽住一  
ArrayList是一个数组队列,相当于 动态数组,与Java中的数组相比,它的容量能动态增长,这篇文章主要给大家介绍了关于java中ArrayList的两种排序方法,需要的朋友可以参考下

前言

由于其功能性和灵活性,ArrayList是 Java 集合框架中使用最为普遍的集合类之一。ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在添加和移除元素的时候进行动态的扩展和缩减。你可能已经使用过 ArrayList,因此我将略过基础部分。如果你对 ArrayList 还不熟悉,你可以参考它的 API 文档,可以很容易理解在 ArrayList 上执行基本的操作。

1.ArrayList使用排序的初衷

我们知道ArrayList的好处是可以不用限定容器的大小,他会根据元素的增加自己扩大。但是存储进去的数据类型都会变成object,虽然每个元素有自己的index,但不像数组的下标可以更加方便的操作。那我们平时学习的选择排序啊快速排序啊都是对数组进行操作。最开始的笨办法就是把list中的数据传给数组排序好了再传回来喽。但是这样效率真的下降的不是几倍,是几十倍啊真的不能这样来。查了点资料和案例在这里总结一下。

2.对一个ArrayList中的数组进行排序。

首先来看下Collection的帮助文档:

在这里顺便补充下ArrayList和Collection的关系:

具体的使用代码如下:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class compre {
 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan=new Scanner(System.in);
		int n;
		ArrayList al=new ArrayList();
		System.out.println("请输入需要的个数");
		n=scan.nextInt();
		System.out.println("请逐一输入");
		for(int i=0;i<n;i++) {
			al.add(i,scan.nextInt());
		}
		System.out.println("你输入的数字是:");
		for(int i=0;i<al.size();i++) {
			int temp=(int)al.get(i);
			System.out.print(temp+" ");
		}
		Collections.sort(al);//针对一个ArrayList内部的数据排序
		System.out.println();
		System.out.println("经过排序后:");
		for(int i=0;i<al.size();i++) {
			int temp=(int)al.get(i);
			System.out.print(temp+" ");
		}
	}
}

运行结果:

3.多个ArrayList中的元素进行排序

 class SortByName implements Comparator {
         public int compare(Object o1, Object o2) {
          Student s1 = (Student) o1;
          Student s2 = (Student) o2;
          return s1.getName().compareTo(s2.getName());
         }
}
  class SortByAge implements Comparator {
         public int compare(Object o1, Object o2) {
          Student s1 = (Student) o1;
          Student s2 = (Student) o2;
          return s1.getAge().compareTo(s2.getAge());
//          if (s1.getAge() > s2.getAge())
//           return 1;
//          return -1;
         }
        }

总结

到此这篇关于java中ArrayList两种排序的文章就介绍到这了,更多相关java ArrayList排序方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Springboot笔记之热部署及不生效的解决方案

    Springboot笔记之热部署及不生效的解决方案

    这篇文章主要介绍了Springboot笔记之热部署及不生效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • SpringBoot实现权限验证的示例步骤

    SpringBoot实现权限验证的示例步骤

    权限验证是一种用于控制对系统资源和操作的访问的机制。它允许开发人员定义谁可以执行特定操作或访问特定资源,并确保只有经过授权的用户才能执行这些操作,这篇文章主要介绍了SpringBoot实现权限验证,需要的朋友可以参考下
    2023-08-08
  • AsyncHttpClient IOExceptionFilter异常过滤器

    AsyncHttpClient IOExceptionFilter异常过滤器

    这篇文章主要为大家介绍了AsyncHttpClient IOExceptionFilter异常过滤器代码流程解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Spring Security自定义认证逻辑实例详解

    Spring Security自定义认证逻辑实例详解

    这篇文章主要给大家介绍了关于Spring Security自定义认证逻辑的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • 关于Java Spring三级缓存和循环依赖的深入理解

    关于Java Spring三级缓存和循环依赖的深入理解

    对于循环依赖,我相信读者无论只是听过也好,还是有过了解也好,至少都有所接触。但是我发现目前许多博客对于循环依赖的讲解并不清楚,都提到了Spring的循环依赖解决方案是三级缓存,但是三级缓存每一级的作用是什么,很多博客都没有提到,本篇文章带你深入了解
    2021-09-09
  • java FileOutputStream输出流的使用解读

    java FileOutputStream输出流的使用解读

    这篇文章主要介绍了java FileOutputStream输出流的使用解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Java实现压缩 PDF文件大小的示例代码

    Java实现压缩 PDF文件大小的示例代码

    在日常工作中,我们经常会遇到 PDF 文件体积过大的问题,本文将为你揭示如何利用 Spire.PDF for Java 轻松实现 PDF 文件大小的优化与压缩,感兴趣的可以了解下
    2025-09-09
  • SpringBoot程序加密保护代码不被反编译

    SpringBoot程序加密保护代码不被反编译

    在Java开发中,保护代码不被反编译是非常重要的,尤其是涉及核心业务逻辑或关键技术时,常用的反编译工具如 jadx 可以轻松将 Java 字节码还原成可读的源代码,本文将介绍如何通过加密和混淆技术,在SpringBoot程序中实现反编译保护
    2024-12-12
  • Java线程的调度与优先级详解

    Java线程的调度与优先级详解

    这篇文章主要为大家详细介绍了Java线程的调度与优先级,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • Java多线程ThreadPoolExecutor详解

    Java多线程ThreadPoolExecutor详解

    这篇文章主要介绍了Java多线程ThreadPoolExecutor详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08

最新评论