您的位置:首页 > 编程语言 > Java开发

java ArrayList的两种排序方法

2018-03-15 10:06 417 查看

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+" ");
}
}
}运行结果:



2.多个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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ArrayList排序 排序