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

网友投稿 533 2022-10-13


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

目录前言1.ArrayList使用排序的初衷2.对一个ArrayList中的数组进行排序。3.多个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

al.add(i,scan.nextInt());

}

System.out.println("你输入的数字是:");

for(int i=0;i

int temp=(int)al.get(i);

System.out.print(temp+" ");

}

Collections.sort(al);//针对一个ArrayList内部的数据排序

System.out.printlnlSaWpdXi();

System.out.println("经过排序后:");

for(int i=0;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;

}

}

总结

al.add(i,scan.nextInt());

}

System.out.println("你输入的数字是:");

for(int i=0;i

int temp=(int)al.get(i);

System.out.print(temp+" ");

}

Collections.sort(al);//针对一个ArrayList内部的数据排序

System.out.printlnlSaWpdXi();

System.out.println("经过排序后:");

for(int i=0;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;

}

}

总结

int temp=(int)al.get(i);

System.out.print(temp+" ");

}

Collections.sort(al);//针对一个ArrayList内部的数据排序

System.out.printlnlSaWpdXi();

System.out.println("经过排序后:");

for(int i=0;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;

}

}

总结

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;

}

}

总结


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:AI智能视频平台EasyCVR云服务如何最大限度地提高视频起播时间?
下一篇:怎么用电脑做wifi热点?|怎么用手机连电脑wifi?(电脑如何开热点让手机连wifi)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~