目标:实现对Person 对象的年龄,从小到大排序

1、实现排序

 package com.app;

 import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List; public class A1 { public static void main(String[] args) {
List<Person> list = getData() ;
//排序
Collections.sort( list , comparator ); for (Person person : list) {
System.out.println("person " + person.getName() + " " + person.getAge() );
} } /**
* 年龄按从小到大排序
*/
static Comparator<Person> comparator = new Comparator<Person>() {
@Override
public int compare(Person p1 , Person p2 ) {
if( p1.getAge() > p2.getAge() ){
return 1 ; //正数
}else if ( p1.getAge() < p2.getAge()) {
return -1 ; //负数
}else {
return 0; //相等为0
}
}
}; static private List<Person> getData() {
List<Person> list = new ArrayList<>() ; Person p1 = new Person() ;
p1.setAge( 10 );
p1.setName( "p1" ); Person p2 = new Person() ;
p2.setAge( 30 );
p2.setName( "p2" ); Person p3 = new Person() ;
p3.setAge( 20 );
p3.setName( "p3" ); Person p4 = new Person() ;
p4.setAge( 15 );
p4.setName( "p4" ); list.add( p1 ) ;
list.add( p2 ) ;
list.add( p3 ) ;
list.add( p4 ) ; return list ;
}
}

2、创建Person类

package com.app;

public class Person {

    private int age ;
private String name ; public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

3、运行结果(实现对年龄的排序)

person   p1  10
    person   p4  15
    person   p3  20
    person   p2  30

Java 中Comparator 的使用,实现集合排序的更多相关文章

  1. java中Comparator的用法 -- 实现集合和数组排序

    在java中,如果要对集合对象或数组对象进行排序,需要实现Comparator接口以达到我们想要的目标. 接下来我们模拟下在集合对象中对日期属性进行排序 一.实体类Step package com.l ...

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

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

  3. Java中的经典算法之选择排序(SelectionSort)

    Java中的经典算法之选择排序(SelectionSort) 神话丿小王子的博客主页 a) 原理:每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕.也就是:每一趟 ...

  4. Java提高(5)---map集合排序

    map集合排序 这篇文章讲的不仅仅是map排序,比如把对象按某一属性排序,它都可以解决这些问题. 比如,有N个对象,每个对象有个属性就是成绩,成绩分:优秀,良好,合格.那我们如何按照成绩的好坏进行排序 ...

  5. java中的最重要的 集合框架

    java.util这个重要的包包含大量的类和接口,支持很多的功能.例如,java.util具有能产生伪随机数的类,还包括可以管理日期和时间.观察事件.操作位集合.标记字符串.处理格式化数据等的类.ja ...

  6. java中Comparator比较器顺序问题,源码分析

    提示: 分析过程是个人的一些理解,如有不对的地方,还请大家见谅,指出错误,共同学习. 源码分析过程中由于我写的注释比较啰嗦.比较多,导致文中源代码不清晰,还请一遍参照源代码,一遍参照本文进行阅读. 原 ...

  7. Java Collections.sort方法对list集合排序

    1.排序测试类 package com.ljq.test; import java.util.ArrayList; import java.util.Collections; import java. ...

  8. JAVA中运用数组的四种排序方法

    JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法.冒泡法.选择排序法.插入排序法. 快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现. 冒泡法是运用遍历数组进 ...

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

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

随机推荐

  1. undefined reference to `_imp___ZN8QWebViewC1EP7QWidget'

    add this line to your .pro file: QT += webkitwidgets

  2. 转载--CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡

    源地址:http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台: ...

  3. cp: omitting directory”错误

    在linux下拷贝的时候有时候会出现cp:omitting directory的错误 , 是因为目录下面还有子目录,不能直接拷贝 解决办法: 命令:cp -r 

  4. gulp-notify处理报错----gulp系列(二)

    上一节,以less为例,入门了gulp,并为任务结构做了抽离. 前端们,gulp该用起来了,简单的demo入门——gulp系列(一) 本节学习下gulp-notify,官方这样解释的: gulp-no ...

  5. 使用 GistBox 轻松组织和管理你的代码片段

    GistBox 用简便的方式来组织和管理代码片段.你的代码会保存到云端进行备份,再也不用担心迷失在杂乱的代码片段中.GistBox 是建立在标准的 HTML5 技术基础上.在旅途中或在办公室,你都可以 ...

  6. 6/20 sprint3 看板和燃尽图的更新

  7. 译:在ASP.NET MVC5中如何使用Apache log4net 类库来记录日志

    译文出处:http://www.codeproject.com/Articles/823247/How-to-use-Apache-log-net-library-with-ASP-NET-MVC 在 ...

  8. 重构if...else...或者switch程序块

    我们在开发asp.net时,经常有使用if...else...或者是使用switch来进行多个条件判断.如下面这篇<用户控件(UserControl) 使用事件 Ver2>http://w ...

  9. 【Unity】13.2 通过Lighting Window设置相关参数

    分类:Unity.C#.VS2015 创建日期:2016-05-19 一.简介 Unity 5.3.4的Lighting Window有3个选项卡:Object.Scene.Lightmaps. 二. ...

  10. 【C#进阶系列】01 CLR的执行模型——一个Hello World的故事

    好吧,废话少说,先上一章Hello World图: 我们有了一个Hello world程序,如此之简单,再加上我今天没有用汉字编程o(>﹏<)o,所以一切很简单明了. 故事开始: 编译: ...