java中使用sort()对ArrayList进行排序

转载 2015年09月13日 19:53:00

java中的ArrayList需要通过collections类的sort方法来进行排序

如果想自定义排序方式则需要有类来实现Comparator接口并重写compare方法

调用sort方法时将ArrayList对象与实现Commparator接口的类的对象作为参数



举个例子:
package book.arrayset;

import java.util.Comparator;

/**
* 整数比较器,将整数按降序排列
*/
class MyIntComparator implements Comparator{

/**
* o1比o2大,返回-1;o1比o2小,返回1。
*/
public int compare(Object o1, Object o2) {
int i1 = ((Integer)o1).intValue();
int i2 = ((Integer)o2).intValue();
if (i1 < i2){
return 1;
}
if (i1 > i2){
return -1;
}
return 0;
}
}

//上面的为比较的函数实现,下面真正的添加数据,

//通过调用上面的比较函数实现自定义排序的功能

package book.arrayset;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
* 对List中的元素排序
*/
public class SortList {

public static void output(List list){
if (list == null){
return;
}
for (int i=0; i<list.size(); i++){
System.out.print(list.get(i).toString() + " ");
}
System.out.println();
}

public static void main(String[] args) {
List list = new ArrayList();
list.add(new Integer(5));
list.add(new Integer(8));
list.add(new Integer(1));
list.add(new Integer(3));
list.add(new Integer(2));
list.add(new Double(3.1));
<span style="font-family: Arial, Helvetica, sans-serif;">System.out.println("list开始状态");</span>
SortList.output(list);
//Collections.sort  <span style="color:#ff0000;">用默认比较器排列list的元素</span>
Collections.sort(list);
System.out.println("list被默认比较器排序后的状态");
SortList.output(list);
//用自定义方法按降序排列</span>
Collections.sort(list, new MyIntComparator());
System.out.println("list被自定义比较器排序后的状态");
SortList.output(list);


}
}
因此,对于任意自定义类的对象,当保存在集合类容器中后,如果需要对它们进行排序,需要自己提供适应于自定义类的比较器,自定义比较器必须实现Comparator接口。然后采用Collections.sort(list, comparator);方法对容器进行排序。</span>

如何实现对ArrayList排序 sort()

总结: 使用Collections.sort()传入ArrayList,会采用默认的方式进行排序(字典序)使用Collections.sort()传入ArrayList和自己实现Commparat...
  • u011299745
  • u011299745
  • 2016年09月24日 22:18
  • 18927

Collections.sort方法排序,以及java8前后版本的使用

自己的一些总结
  • M_200
  • M_200
  • 2016年11月25日 10:19
  • 4490

java List 排序 Collections.sort()

用Collections.sort方法对list排序有两种方法  第一种是list中的对象实现Comparable接口,如下: /** * 根据order对User排序 */ public ...
  • zxy_snow
  • zxy_snow
  • 2012年02月03日 17:20
  • 82756

Java的数组和list升序,降序,逆序函数Collections.sort和Arrays.sort的使用

list升序,降序,逆序 List list =new ArrayList(); //如果list是 5 7 2 6 8 1 4 1、升序: Collections.sort(list) //...
  • yzwty
  • yzwty
  • 2017年02月21日 16:35
  • 3376

java List 排序 Collections.sort() 对 List 排序(首先年龄排序,如果年龄相同,则按名字排序)

对 List 排序(首先年龄排序,如果年龄相同,则按名字排序)
  • qq_26676207
  • qq_26676207
  • 2017年02月07日 10:45
  • 2374

JAVA对list集合进行排序Collections.sort()

对一个集合中的对象进行排序,根据对象的某个指标的大小进行升序或降序排序。...
  • Super_Man_X
  • Super_Man_X
  • 2015年12月02日 15:53
  • 18167

JAVA SortList 通用排序类

  • 2013年10月12日 11:59
  • 4KB
  • 下载

java基础 三种方式对int类型的List集合排序(通用排序)

首先我们定义一个List并且add元素List list = new ArrayList(); list.add(1); list.add(89); l...
  • Gavin_wangzg
  • Gavin_wangzg
  • 2016年06月08日 11:20
  • 7789

Java利用Comparator与Collections.sort对List排序

如果List中Object实现了Comparator接口,便可以直接用以下的方式对List进行排序 如List list,通过list.add("abc")等操作为list添加了一些元素,通过以下代...
  • yuanbohx
  • yuanbohx
  • 2014年03月31日 23:59
  • 14671

java list集合使用Collections中的sort方法进行排序(Comparator),超实用

Collections中sort方法对list集合进行排序,很实用
  • zhangjq520
  • zhangjq520
  • 2017年01月10日 14:04
  • 3741
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中使用sort()对ArrayList进行排序
举报原因:
原因补充:

(最多只允许输入30个字)