1.Integer/String泛型的List进行排序

List <Integer> integerlist = new ArrayList<Integer>();   //定义一个Integer泛型的List

然后用add()方法添加一些Integer类型的数据到该List中,

Collections.sort(integerlist);                                //因为是数值型的数据,排序即按照大小升序排序

2.自定义泛型的List进行排序

其实Collections.sort(List)方法进行排序的前提是:List对象中的泛型类实现了Comparable接口;

我们拿学生类来用具体的代码演示一下:

public class Student implements Comparable<Student>{

int id;

String name;

........

public int compareTo(Student o){               //实现接口自然要实现接口的方法

return  this.id.compareTo(o.id);      //规定学生对象排序的依据,这里按ID排序

}

}

然后就可以对一个由学生对象组成的List表进行Collections.sort(List)排序了(其实是按ID排序)

Comparable接口定义的规则是默认规则。

3.Comparator接口

这个接口可以帮助我们事先定义好各种比较规则,用的时候直接换规则,不用去改泛型对象里

的比较方法compareTo(),

ID排序规则(类):

public class comparebyid implements Comparator<Student>{

public int compare(Student o1,Student o2){

return o1.id.compareTo(o2.id);

}

}

Name排序规则(类):

public class comparebyname implements Comparator<Student>{

public int compare(Student o1,Student o2){

return o1.name.compareTo(o2.name);

}

}

规则定义好了,如何使用呢?

先实例化一个规则对象,将对象传入Collections.sort()方法中:

Collections.sort(studentlist,new comparebyname());

这样就能忽略上面的默认规则,实现按照新的规则(姓名排序)排序了。

java中Collections.sort()方法实现集合排序的更多相关文章

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

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

  2. 关于Java中Collections.sort和Arrays.sort的稳定性问题

    一 问题的提出   关于Java中Collections.sort和Arrays.sort的使用,需要注意的是,在本文中,比较的只有Collections.sort(List<T> ele ...

  3. Java中Collections.sort()排序详解

      public static void main(String[] args) { List<String> list = new ArrayList<String>(); ...

  4. java中Collections.sort排序详解

    Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能:如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f, ...

  5. (网页)java中Collections.sort排序详解(转)

    转自CSDN: Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能:如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b, ...

  6. [转]java中Collections.sort排序详解

      Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能:如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e, ...

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

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

  8. 关于Java中Arrays.sort()方法TLE

    最近一直在练用Java写题,今天无意发现一道很简单的二分题(链接),我一开始是直接开int[]数组调用Arrays.sort()去排序,没想到TLE了,原来是因为jdk中对于int[]的排序是使用快速 ...

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

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

随机推荐

  1. SpringMVC返回json是设置编辑等消息头,消息头信息介绍(respone.setHeader,这个从网上获取)

    1.  SpringMVC中设置消息头,例子如下: ? 因为上面的代码没有添加该文件的编码说明 , WEB应用程序在将jsp翻译成class文件时 , 把该字符串的内容按默认的保存方式指定的编码ASC ...

  2. javascript语法之number对象和Math对象

    这两个对象很简单,一个例子就能掌握用法. 一:number对象. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional// ...

  3. Oracle 11g Articles

    发现一个比较有意思的网站,http://www.oracle-base.com/articles/11g/articles-11g.php Oracle 11g Articles Oracle Dat ...

  4. avcodec_decode_video2()解码视频后丢帧的问题解决

    使用libav转码视频时发现一个问题:使用下面这段代码解码视频时,视频尾巴上会丢掉几帧. while(av_read_frame(ifmt_ctx,&packet) >= 0){ ret ...

  5. ISLR系列:(4.2)模型选择 Ridge Regression & the Lasso

    Linear Model Selection and Regularization 此博文是 An Introduction to Statistical Learning with Applicat ...

  6. 友善之臂tiny4412-1306开发板安卓系统烧写

    折腾了很久,终于烧写成功.不废话,咱们说说流程吧. 首先,我们需要有一个基于tiny4412的kernel,从友善之臂官网获取. 然后解压: 1.tar -xvf  linux-3.5 .... 然后 ...

  7. Java序列化Serializable和Externalizable

    纸上得来终觉浅,绝知此事要躬行  --陆游       问渠那得清如许,为有源头活水来  --朱熹 什么是Java序列化?为什么出现Java序列化?怎样实现Java序列化? 一.什么是Java序列化 ...

  8. Android官方技术文档翻译——新构建系统概述

    本文译自Android官方技术文档<New Build System>,原文地址:http://tools.android.com/tech-docs/new-build-system. ...

  9. Java-ServletRequestWrapper

    /** * * Provides a convenient implementation of the ServletRequest interface that * can be subclasse ...

  10. Unity PUN插件多人在线同步角色坐标旋转角度和动作

    用PUN插件的话,就在OnJoinedRoom()回调函数里,表示加入房间,可以实例化角色,GameObject go=PhotonNetwork.Instantiate(prefabPlayer.n ...