首选需要有个Entity类 ,里面有属性有方法

 package demo;

 public class Entity {
private String empNo ;
private String empName ;
private float sal ; public String getEmpNo() {
return empNo;
}
public void setEmpNo(String empNo) {
this.empNo = empNo;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public float getSal() {
return sal;
}
public void setSal(float sal) {
this.sal = sal;
} public Entity(String empNo,String empName,float sal){
this.empNo = empNo ;
this.empName = empName ;
this.sal = sal ;
} }

现在我想对 empName 这个属性进行排序

此时需要MyComparator 实现Comparator<Object>

 package demo;

 import java.util.Comparator;

 public class MyComparator implements Comparator<Object>{ 

     public int compare(Object o1,Object o2) {
Entity s1 = (Entity) o1;
Entity s2 = (Entity) o2;
// return (int) (s1.getSal() - s2.getSal()); // 按Id排
return s1.getEmpName().compareTo(s2.getEmpName()); // 按姓名排
}
}

测试类如下

 package demo;

 import java.util.ArrayList;
import java.util.Collections; public class test {
public static void main(String[] args) {
ArrayList<Entity> list = new ArrayList<Entity>();
Entity e1 = new Entity(null, null, 0);
Entity e2 = new Entity(null, null, 0);
Entity e3 = new Entity(null, null, 0);
Entity e4 = new Entity(null, null, 0);
e1.setEmpName("TY2014000002");
String s1= e1.getEmpName();
s1 = s1.substring(6);
System.out.println(s1+"+++++++++");
e2.setEmpName("TY2016000009");
e3.setEmpName("TY2016000003");
e4.setEmpName("TY2014000001");
list.add(e1);
list.add(e2);
list.add(e3);
list.add(e4);
for(int i=0;i<list.size();i++){
Entity emp = (Entity)list.get(i) ;
System.out.println(emp.getEmpName());
}
System.out.println("-------------------");
MyComparator mc = new MyComparator() ;
Collections.sort(list, mc) ;
for(int i=0;i<list.size();i++){
Entity emp = (Entity)list.get(i) ;
System.out.println(emp.getEmpName());
}
}
}

实现Comparator 对List<?>进行排序的更多相关文章

  1. 十五、Collections.sort(<T>, new Comparator<T>() {})针对字符串排序

    1.排序对象全是字母组成,可以根据ASCII编码表排序 package com.abcd; public class Person{ private String name; private int ...

  2. JAVA 使用Comparator接口实现自定义排序

    1.原则 Comparator接口可以实现自定义排序,实现Comparator接口时,要重写compare方法: int compare(Object o1, Object o2) 返回一个基本类型的 ...

  3. Comparator进行List集合排序

    对数据库中查询到的结果进行排序,一般开发中,实体类是没有实现Comparable接口的,所以不能实现compareTo()方法进行排序, 只能用Comparator去进行排序,只需要在带排序的集合中加 ...

  4. 十四、new Comparator<T>实现多重排序结果

    1.编写实现类 package com.abcd; public class Person{ private String name; private int age; private int sal ...

  5. Comparator和Comparable在排序中的应用

    http://blog.csdn.net/iisgirl/article/details/7269833

  6. Java8:Lambda表达式增强版Comparator和排序

    1.概述 在这篇教程里,我们将要去了解下即将到来的JDK 8(译注,现在JDK 8已经发布了)中的Lambda表达式——特别是怎样使用它来编写Comparator和对集合(Collection)进行排 ...

  7. Java ArrayList中对象的排序 (Comparable VS Comparator)

    我们通常使用Collections.sort()方法来对一个简单的数据列表排序.但是当ArrayList是由自定义对象组成的,就需要使用comparable或者comparator接口了.在使用这两者 ...

  8. JDK8新特性:使用stream、Comparator和Method Reference实现集合的优雅排序

    大家对java接口Comparator和Comparable都不陌生,JDK8里面Comparable还和以前一样,没有什么改动:但是Comparator在之前基础上增加了很多static和defau ...

  9. 我的Java开发学习之旅------>Java利用Comparator接口对多个排序条件进行处理

    一需求 二实现Comparator接口 三验证排序结果 验证第一条件首先按级别排序级别最高的排在前面 验证第二条如果级别相等那么按工资排序工资高的排在前面 验证第三条如果工资相当则按入职年数排序入职时 ...

随机推荐

  1. 一文解读CDN (转)

    如今这个移动互联网时代,越来越多的人使用手机观看视频,丰富自己的娱乐生活. 可是,大家在追剧的时候,有没有想过一个问题——为什么有时候明明自己手机的网速很快,但观看视频时,仍然卡顿? 回答这个问题之前 ...

  2. Jmeter JDBC配置

    前提条件,驱动包mysql-connector-java-5.1.38-bin.jar要放到本机Java路径:C:\Program Files\Java\jdk1.8.0_73\jre\lib\ext ...

  3. 还在用SimpleDateFormat?Java8都发布N年了,转LocalDateTime吧

    前言 Java8发布,已有数年之久,但是发现很多人都还是坚持着用SimpleDateFormat和Date进行时间操作.SimpleDateFormat这个类不是线程安全的,在使用的时候稍不注意,就会 ...

  4. PHP中的异常知识

    一.绪 首先明确一点:异常和错误不是一回事. 一个异常(Exception)是一个程序执行过程中出现的一个例外或是一个事件,它中断了正常指令的运行,跳转到其他程序模块继续执行. 基本格式: try { ...

  5. Linux centosVMware Vim介绍、vim颜色显示和移动光标、vim一般模式下移动光标、vim一般模式下复制、剪切和粘贴

    一.Vim介绍 vim 是一款功能强大的文本编辑器,是vi的升级版,带有颜色显示, 默认有三种模式:一般模式, 命令模式,  编辑模式   安装Vim [root@davery ~]# vim /et ...

  6. DeprecationWarning:'open()' is deprecated in mongoose>=4.11.0,use 'openUri()' instead or set the 'useMongoClient' option if using 'connect()' or 'createConnection'

    mongoose.connect('mongodb://localhost/test');报错:(node:2752) DeprecationWarning: `open()` is deprecat ...

  7. 51nod 1378:夹克老爷的愤怒 很好玩的一道树状dp

    1378 夹克老爷的愤怒 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  取消关注 夹克老爷逢三抽一之后,由于采用了新师爷的策略,乡民们叫苦不堪,开始组织 ...

  8. ROS常用库(三)API学习之常用common_msgs(上)

    一.概述 common_msgs包含其他ROS软件包广泛使用的消息.这些消息包括动作消息(actionlib_msgs),诊断消息(diagnostic_msgs),几何图元(geometry_msg ...

  9. 我的Grunt之旅-初识gruntfile文件

    时间:2018-03-06 18:23  事件:配置 gruntfile.js文件 首先,回忆一下之前的点,grunt项目下面必须有两个文件  ,第一个  package.json ,第二个  Gru ...

  10. html的适配

    html值得一说的应该就是适配 !!适配是与手机同时存在的 写好一个页面在手机端打开,会发现这个页面显示很小,那是因为设备的视口宽度viewport不等于设备宽度device-width,而页面是根据 ...