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

1、实现排序

 1 package com.app;
 2
 3 import java.util.ArrayList;
 4 import java.util.Collections;
 5 import java.util.Comparator;
 6 import java.util.List;
 7
 8 public class A1 {
 9
10     public static void main(String[] args) {
11         List<Person> list = getData() ;
12         //排序
13         Collections.sort( list , comparator );
14
15         for (Person person : list) {
16             System.out.println("person   " + person.getName() + "  " + person.getAge() );
17         }
18
19     }
20
21     /**
22      * 年龄按从小到大排序
23      */
24     static Comparator<Person> comparator = new Comparator<Person>() {
25         @Override
26         public int compare(Person p1 , Person p2 ) {
27             if( p1.getAge() > p2.getAge() ){
28               return 1 ;  //正数
29             }else if ( p1.getAge() < p2.getAge()) {
30                 return -1 ;  //负数
31             }else {
32                 return 0;  //相等为0
33             }
34         }
35     };
36
37     static private List<Person> getData() {
38         List<Person> list = new ArrayList<>() ;
39
40         Person p1 = new Person() ;
41         p1.setAge( 10 );
42         p1.setName( "p1" );
43
44         Person p2 = new Person() ;
45         p2.setAge( 30 );
46         p2.setName( "p2" );
47
48         Person p3 = new Person() ;
49         p3.setAge( 20 );
50         p3.setName( "p3" );
51
52         Person p4 = new Person() ;
53         p4.setAge( 15 );
54         p4.setName( "p4" );
55
56         list.add( p1 ) ;
57         list.add( p2 ) ;
58         list.add( p3 ) ;
59         list.add( p4 ) ;
60
61         return list ;
62     }
63 }

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

转载于:https://www.cnblogs.com/zhaoyanjun/p/4538379.html

Java 中Comparator 的使用,实现集合排序相关推荐

  1. java中给对象的List集合去重的几种方法(Lambda)

    java中给对象的List集合去重的几种方法 前言 一.lambda表达式的去重方式 二.Stream API中的collect去重方法 三.Stream API 中的distinct方法去重 前言 ...

  2. java实现什么接口进行排序_使用Java中Comparator接口实现自定义排序

    一般情况下,自己动手写一个简单排序程序还是没有问题的,但是你能保证写出来的排序程序的时间复杂度吗?你能保证程序的正确性吗,鲁棒性呢,还有程序结构的清晰性,可维护性.......综上所述,学习一下排序接 ...

  3. Java中Comparator和Comparable之间的区别

    常见的面试问题之一是"比较器和可比较器之间有什么区别". 或"您将如何通过其ID或名称对员工对象集合进行排序".为此,我们可以使用两个接口,即Comparato ...

  4. java 中list类型未知_Java集合-List

    Java Collection 在 Java2中,有一套设计优良的接口和类组成了Java集合框架Collection,使程序员操作成批的数据或对象元素极为方便.这些接口和类有很多对抽象数据类型操作的A ...

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

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

  6. java中数据结构的应用_Java集合入门 (二)常用数据结构和应用场景-数组

    Java极客  |  作者  /  铿然一叶 这是Java极客的第 48 篇原创文章 一.数组的特点 1.数组大小固定 2.一个数组只能存储相同数据类型 3.随机访问性能高 4.存储空间连续,这样可以 ...

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

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

  8. Java中如何循环删除一个集合(如List)中的多个元素

    今天我需要从一个java的集合中,根据另一个集合的内容,删除第一个集合中不特定的元素.这看上去非常简单,但却遇到了问题.这就是"Java中如何删除一个集合中的多个元素"的问题. 这 ...

  9. Java中常用集合类对比_集合比较

    集合实现类 集合接口 有序性 唯一性 线程安全 空值 性能 排序 数据结构 索引 应用场景 备注 ArrayList List 有序 可重复 不安全 允许空值 查找效率高,添加/删除效率低 使用 Co ...

最新文章

  1. 是男人就下100层【第四层】——Crazy贪吃蛇(2)
  2. workstation 14 PRO 秘钥
  3. python中参数(带星号的参数)
  4. [现代操作系统] 考前突击
  5. boost::function_types::is_member_function_pointer用法的测试程序
  6. struts文件上传时异常问题
  7. E820-DTU与昆仑通态组态软件联机
  8. Flex2.0实现文件上传功能(服务器为ASP.NET)
  9. 【英语学习】【WOTD】cumulate 释义/词源/示例
  10. python中function函数的用法_Python中Function(函数)和methon(方法)
  11. Win7和win10下python3和python2同时安装并解决pip共存问题
  12. 2Do for Mac(任务管理GTD工具)
  13. Java多线程系列--“JUC线程池”
  14. @Autowired的使用--Spring规范解释,推荐对构造函数进行注释
  15. [改善Java代码]使用静态内部类提高封装性
  16. HTML学生个人网站作业设计:电影网站设计——橙色国外电影(13页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
  17. elementUI中的Backtop回到顶部
  18. Class6 基于ECS和NAS搭建个人网盘
  19. EverEdit - 值得关注的国产原创开发的免费高效优秀的文本与代码编辑器
  20. windows查看密码工具

热门文章

  1. c语言数组算n阶乘,c语言中如何计算n的阶乘
  2. python定位文件位置_python使用相对定位,绝对定位,选取同级别文件下的指定文件(csv,excel)...
  3. 3分钟搞定静态出接口
  4. 运维基础(8)shell脚本
  5. Spring Cloud Gateway 突发高危漏洞,下一代云原生网关恰逢其时?
  6. 林昊获中国计算机学会杰出工程师奖,阿里中间件再获高度肯定,“三位一体”推动技术普惠
  7. 从零入门 Serverless | 架构的演进
  8. 从零开始入门 K8s | Kubernetes 存储架构及插件使用
  9. 加固工程验收规范50550_石家庄栾城县厂房梁柱加固施工队规范作业-建筑加固
  10. 手机html图片模糊,css3处理sprite背景图压缩来解决H5网页在手机浏览器下图标模糊的问题_html/css_WEB-ITnose...