服务器之家

服务器之家 > 正文

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

时间:2021-09-29 10:51     来源/作者:光羽住一

前言

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

1.ArrayList使用排序的初衷

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

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

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

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

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

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

具体的使用代码如下:

  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.Scanner;
  4. public class compre {
  5.  
  6. public static void main(String[] args) {
  7. // TODO Auto-generated method stub
  8. Scanner scan=new Scanner(System.in);
  9. int n;
  10. ArrayList al=new ArrayList();
  11. System.out.println("请输入需要的个数");
  12. n=scan.nextInt();
  13. System.out.println("请逐一输入");
  14. for(int i=0;i<n;i++) {
  15. al.add(i,scan.nextInt());
  16. }
  17. System.out.println("你输入的数字是:");
  18. for(int i=0;i<al.size();i++) {
  19. int temp=(int)al.get(i);
  20. System.out.print(temp+" ");
  21. }
  22. Collections.sort(al);//针对一个ArrayList内部的数据排序
  23. System.out.println();
  24. System.out.println("经过排序后:");
  25. for(int i=0;i<al.size();i++) {
  26. int temp=(int)al.get(i);
  27. System.out.print(temp+" ");
  28. }
  29. }
  30. }

运行结果:

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

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

  1. class SortByName implements Comparator {
  2. public int compare(Object o1, Object o2) {
  3. Student s1 = (Student) o1;
  4. Student s2 = (Student) o2;
  5. return s1.getName().compareTo(s2.getName());
  6. }
  7. }
  1. class SortByAge implements Comparator {
  2. public int compare(Object o1, Object o2) {
  3. Student s1 = (Student) o1;
  4. Student s2 = (Student) o2;
  5. return s1.getAge().compareTo(s2.getAge());
  6. // if (s1.getAge() > s2.getAge())
  7. // return 1;
  8. // return -1;
  9. }
  10. }

总结

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

原文链接:https://blog.csdn.net/xieminyao123/article/details/79563502

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
返回顶部