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

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

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

示例:

// 外部类的方式

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

import java.util.Comparator; import java.util.List;

public class Test {  public static void main(String[] args) {

Student zlj = new Student("丁晓宇", 21);

Student dxy = new Student("赵四", 22);

Student cjc = new Student("张三", 11);

Student lgc = new Student("刘武", 19);

List<Student> studentList = new ArrayList<Student>();

studentList.add(zlj);

studentList.add(dxy);

studentList.add(cjc);

studentList.add(lgc);

Collections.sort(studentList, new SortByAge());

for (Student student : studentList) {

System.out.println(student.getName() + " / " + student.getAge());

}

System.out.println("  =  ");

Collections.sort(studentList, new SortByName());

for (Student student : studentList) {

System.out.println(student.getName() + " / " + student.getAge());

}  } }

class SortByAge implements Comparator {

public int compare(Object o1, Object o2) {

Student s1 = (Student) o1;   Student s2 = (Student) o2;

if (s1.getAge() > s2.getAge())    return 1;   return 0;  } }

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());  } }

//匿名内部类的方式

//按照受益人级别进行排序

Collections.sort(beneficiarys,new Comparator(){

@Override

public int compare(Object o1, Object o2) {

Beneficiary s1 = (Beneficiary) o1;

Beneficiary s2 = (Beneficiary) o2;

if (Integer.parseInt(s1.getBeneficiaryOrder()) > Integer.parseInt(s2.getBeneficiaryOrder()))

return 1;

return 0;

}    });

定制对ArrayList的sort方法的自定义排序的更多相关文章

  1. java中sort方法的自定义比较器写法(转载)

    java中sort方法的自定义比较器写法 摘要 在做一些算法题时常常会需要对数组.自定义对象.集合进行排序. 在java中对数组排序提供了Arrays.sort()方法,对集合排序提供Collecti ...

  2. 用Java集合中的Collections.sort方法对list排序的两种方法

    用Collections.sort方法对list排序有两种方法第一种是list中的对象实现Comparable接口,如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  3. sort方法和自定义比较器的写法

    摘要 在做一些算法题时常常会需要对数组.自定义对象.集合进行排序. 在java中对数组排序提供了Arrays.sort()方法,对集合排序提供Collections.sort()方法.对自定义对象排序 ...

  4. java中Collections.sort()方法实现集合排序

    1.Integer/String泛型的List进行排序 List <Integer> integerlist = new ArrayList<Integer>();   //定 ...

  5. 【C++】标准库sort函数的自定义排序

    自定义排序需要单独写一个compare函数 例1 LeetCode 056. Merge Intervals Given a collection of intervals, merge all ov ...

  6. (JavaScript基础向)sort()方法里的排序函数的理解

    比较常见的解释可以看这里:js的sort()方法,这篇博客写得挺好的,一般的应用的理解已经足够了. 但是如果要活用sort()方法里面的参数——也就是排序函数的话,可能就比较难理解了. 然后我就总结出 ...

  7. Collections.sort方法对list排序的两种方式

    Collections.sort( )分为两部分,一部分为排序规则,一部分为排序算法 . 规则用来判断对象,算法则考虑如何进行排序 对于自定义对象,sort()不知道规则,所以无法比较,这种情况下一定 ...

  8. Java基础集锦——利用Collections.sort方法对list排序

    要想对List进行排序,可以让实体对象实现Comparable接口,重写compareTo方法即可实现按某一属性排序,但是这种写法很单一,只能按照固定的一个属性排序,没变法变化.通过下面这种方法,可以 ...

  9. ArrayList 排序Sort()方法扩展

    1.sort() sort可以直接对默认继承 IComparable接口的类进行排序,如:int.string.... ArrayList arrayList = new ArrayList(); , ...

随机推荐

  1. ThinkPHP 3.2.2 视图模板中使用字符串截取函数

    在项目的 Common/function.php 文件里( 项目结构如图 ) 添加函数: /*字符串截断函数+省略号*/ function subtext($text, $length) { if(m ...

  2. 23个MySQL常用查询语句

    23个MySQL常用查询语句 一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!> ...

  3. page show

    controller public function record() { $r = ; $m = M(); $query = $m->query('select count(1) as cou ...

  4. 不再写.bat

    <script type="text/javascript"> for (var w = 0; w < 24; w++) { setTimeout(functio ...

  5. 利用js轻松实现页面简繁体转换

    使用方法:StranBody(); //转换对象,使用递归,逐层剥到文本 function StranBody(fobj) { if(typeof(fobj)=="object") ...

  6. Oracle存储过程java 调用

    1.nest表组合成结果集,然后以游标变量的形式返回 --创建类型 create or replace package mytest is -- Author  : ADMINISTRATOR  -- ...

  7. 估值十亿美元、1.5亿用户,公司CEO却跑路了

    转载这篇文章是觉得配图非常好玩的,文章的真实性有待证明 年收益3600万美元的.曾经拥有高口碑产品的Evernote,却正在把一手好牌打烂,距离IPO越来越远,屡屡被业界唱衰. "独角兽公司 ...

  8. MvcPager分页控件的使用

    1.引入MvcPager.dll(MvcPager分页控件:http://www.webdiyer.com/mvcpager/) 2.后台C# Controller: //Ddemo使用Webdiye ...

  9. 分享一个开源的流程图绘制软件--Diagram Designer

    最近在写专利文件,在制作说明书附图时想到自己还只会用wps进行简单的绘制,于是想学习下,填补下这方面的短板.这两天查到了DiagramDesigner这个小工具,派上了大用场.用它写完了一个发明专利, ...

  10. Qt StyleSheet皮肤(黑色,比较好看,而且很全)

    使用方式如下 //设置皮肤样式 static void SetStyle(const QString &styleName) { QFile file(QString(":/imag ...