java中ArrayList的两种排序方法实例
作者:光羽住一
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排序方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!