欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-12 22:53:53
目录1.arraylist使用排序的初衷2.对一个arraylist中的数组进行排序。3.多个arraylist中的元素进行排序前言由于其功能性和灵活性,arraylist是 java 集合框架中使用...

前言

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

1.arraylist使用排序的初衷

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

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

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

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

在这里顺便补充下arraylist和collection的关系:

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

具体的使用代码如下:

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+" ");
		}
	}
}

运行结果:

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

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排序方法内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!