Java 中Comparator 的使用,实现集合排序
目标:实现对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 的使用,实现集合排序相关推荐
- java中给对象的List集合去重的几种方法(Lambda)
java中给对象的List集合去重的几种方法 前言 一.lambda表达式的去重方式 二.Stream API中的collect去重方法 三.Stream API 中的distinct方法去重 前言 ...
- java实现什么接口进行排序_使用Java中Comparator接口实现自定义排序
一般情况下,自己动手写一个简单排序程序还是没有问题的,但是你能保证写出来的排序程序的时间复杂度吗?你能保证程序的正确性吗,鲁棒性呢,还有程序结构的清晰性,可维护性.......综上所述,学习一下排序接 ...
- Java中Comparator和Comparable之间的区别
常见的面试问题之一是"比较器和可比较器之间有什么区别". 或"您将如何通过其ID或名称对员工对象集合进行排序".为此,我们可以使用两个接口,即Comparato ...
- java 中list类型未知_Java集合-List
Java Collection 在 Java2中,有一套设计优良的接口和类组成了Java集合框架Collection,使程序员操作成批的数据或对象元素极为方便.这些接口和类有很多对抽象数据类型操作的A ...
- Java Collections.sort方法对list集合排序
1.排序测试类 package com.ljq.test;import java.util.ArrayList; import java.util.Collections; import java.u ...
- java中数据结构的应用_Java集合入门 (二)常用数据结构和应用场景-数组
Java极客 | 作者 / 铿然一叶 这是Java极客的第 48 篇原创文章 一.数组的特点 1.数组大小固定 2.一个数组只能存储相同数据类型 3.随机访问性能高 4.存储空间连续,这样可以 ...
- JAVA中运用数组的四种排序方法
JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法.冒泡法.选择排序法.插入排序法. 快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现. 冒泡法是运用遍历数组进 ...
- Java中如何循环删除一个集合(如List)中的多个元素
今天我需要从一个java的集合中,根据另一个集合的内容,删除第一个集合中不特定的元素.这看上去非常简单,但却遇到了问题.这就是"Java中如何删除一个集合中的多个元素"的问题. 这 ...
- Java中常用集合类对比_集合比较
集合实现类 集合接口 有序性 唯一性 线程安全 空值 性能 排序 数据结构 索引 应用场景 备注 ArrayList List 有序 可重复 不安全 允许空值 查找效率高,添加/删除效率低 使用 Co ...
最新文章
- 是男人就下100层【第四层】——Crazy贪吃蛇(2)
- workstation 14 PRO 秘钥
- python中参数(带星号的参数)
- [现代操作系统] 考前突击
- boost::function_types::is_member_function_pointer用法的测试程序
- struts文件上传时异常问题
- E820-DTU与昆仑通态组态软件联机
- Flex2.0实现文件上传功能(服务器为ASP.NET)
- 【英语学习】【WOTD】cumulate 释义/词源/示例
- python中function函数的用法_Python中Function(函数)和methon(方法)
- Win7和win10下python3和python2同时安装并解决pip共存问题
- 2Do for Mac(任务管理GTD工具)
- Java多线程系列--“JUC线程池”
- @Autowired的使用--Spring规范解释,推荐对构造函数进行注释
- [改善Java代码]使用静态内部类提高封装性
- HTML学生个人网站作业设计:电影网站设计——橙色国外电影(13页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
- elementUI中的Backtop回到顶部
- Class6 基于ECS和NAS搭建个人网盘
- EverEdit - 值得关注的国产原创开发的免费高效优秀的文本与代码编辑器
- windows查看密码工具
热门文章
- c语言数组算n阶乘,c语言中如何计算n的阶乘
- python定位文件位置_python使用相对定位,绝对定位,选取同级别文件下的指定文件(csv,excel)...
- 3分钟搞定静态出接口
- 运维基础(8)shell脚本
- Spring Cloud Gateway 突发高危漏洞,下一代云原生网关恰逢其时?
- 林昊获中国计算机学会杰出工程师奖,阿里中间件再获高度肯定,“三位一体”推动技术普惠
- 从零入门 Serverless | 架构的演进
- 从零开始入门 K8s | Kubernetes 存储架构及插件使用
- 加固工程验收规范50550_石家庄栾城县厂房梁柱加固施工队规范作业-建筑加固
- 手机html图片模糊,css3处理sprite背景图压缩来解决H5网页在手机浏览器下图标模糊的问题_html/css_WEB-ITnose...