[java]三种自定义链表排序方式
代码:
import java.util.ArrayList; import java.util.Comparator; import java.util.List; class Emp{ String name; int age; public Emp(String name,int age) { this.name=name; this.age=age; } public String toString() { return "Emp name="+name+" age="+age; } } public class Dept { private List<Emp> emps; public Dept() { emps=new ArrayList<Emp>(); emps.add(new Emp("Bill",32)); emps.add(new Emp("Cindy",42)); emps.add(new Emp("Cindy",12)); emps.add(new Emp("Cindy",52)); emps.add(new Emp("Douglas",92)); emps.add(new Emp("Andy",22)); } public void printEmps() { for(Emp emp:emps) { System.out.println(emp); } } /** * Sort by age */ public void sort1() { emps.sort(new Comparator<Emp>() { public int compare(Emp a1, Emp a2){ return a1.age-a2.age; } }); } /** * Sort by name */ public void sort2() { emps.sort((Emp a1, Emp a2)->a1.name.compareTo(a2.name)); } /** * Sort by name,if same name,sort by age */ public void sort3() { emps.sort(new Comparator<Emp>() { public int compare(Emp a1, Emp a2){ int result=a1.name.compareTo(a2.name); if(result==0) { return a1.age-a2.age; }else { return result; } } }); } public static void main(String[] args) { Dept dept=new Dept(); dept.sort1(); dept.printEmps(); System.out.println("--------------"); dept.sort2(); dept.printEmps(); System.out.println("--------------"); dept.sort3(); dept.printEmps(); } }
输出:
Emp name=Cindy age=12 Emp name=Andy age=22 Emp name=Bill age=32 Emp name=Cindy age=42 Emp name=Cindy age=52 Emp name=Douglas age=92 -------------- Emp name=Andy age=22 Emp name=Bill age=32 Emp name=Cindy age=12 Emp name=Cindy age=42 Emp name=Cindy age=52 Emp name=Douglas age=92 -------------- Emp name=Andy age=22 Emp name=Bill age=32 Emp name=Cindy age=12 Emp name=Cindy age=42 Emp name=Cindy age=52 Emp name=Douglas age=92
--END-- 2019.11.06
[java]三种自定义链表排序方式的更多相关文章
- 从同步阻塞聊到Java三种IO方式
本文总结自 https://zhuanlan.zhihu.com/p/34408883, https://www.zhihu.com/question/19732473中愚抄的回答, http://b ...
- 浅淡Webservice、WSDL三种服务访问的方式(附案例)
Webservice Webservice是使应用程序以与平台和编程语言无关的方式进行相互通信技术. eg:站点提供访问的数据接口:新浪微博.淘宝. 官方解释:它是一种构建应用程序的普遍模型,可以在任 ...
- Spring中三种配置Bean的方式
Spring中三种配置Bean的方式分别是: 基于XML的配置方式 基于注解的配置方式 基于Java类的配置方式 一.基于XML的配置 这个很简单,所以如何使用就略掉. 二.基于注解的配置 Sprin ...
- 三种实现Ajax的方式
本文主要是比较三种实现Ajax的方式 1. prototype.js 2. jquery1.3.2.min.js 3. json2.js Java代码 收藏代码 后台处理程序(Servlet),访问路 ...
- javascript 中数组的创建 添加 与将数组转换成字符串 页面三种提交请求的方式
创建js数组 var array=new Array(); Java中创建数组 private String[] array=new String[3]; 两个完全不同的,js中是可变长度的 添加内容 ...
- (转)Spring的三种实例化Bean的方式
http://blog.csdn.net/yerenyuan_pku/article/details/52832793 Spring提供了三种实例化Bean的方式. 使用类构造器实例化. <be ...
- 三种Singleton的实现方式
来源:http://melin.iteye.com/blog/838258 三种Singleton的实现方式,一种是用大家熟悉的DCL,另外两种使用cas特性来实现. public class Laz ...
- Request三种获取数据的方式
今天在做ajax请求后台代码时,发现ajax的方法都对,但就是请求不了后台代码,后来在同事帮助下才发现前台定义了两个相同参数导致请求出错. 下面记录一下request三种获取数据的方式: 1. Req ...
- Objective-C:三种文件导入的方式以及atomic和nonatomic的区别
一.三种文件导入的方式比较: 类的前项声明@class.import.include: 1.采用@class 类名的方式,它会告诉编译器有这么一个类,目前不需要知道它内部的实例变量和方法是如何定义 ...
随机推荐
- 前台.cshtml得到cookie值方法
function Cookie_() { $.ajax({ url: "/Login_/do_cookie",//请求地址 dataType: "json",/ ...
- FDD-LTE上下行带宽一样的,为什么上下行流量差别这么大
转:https://zhidao.baidu.com/question/923940070377297579.html 虽然FD系统,上下行使用的带宽一样,但是上下行的信号编码效率完全不同.上行信号( ...
- syzkaller安装
初始环境配置 sudo apt-get install subversion sudo apt-get install g++ sudo apt-get install git sudo apt in ...
- C#中流Stream的使用-学习
概念 提供字节序列的一般视图.这是一个抽象类. 子类: Derived Microsoft.JScript.COMCharStream System.Data.OracleClient.OracleB ...
- linux网络编程之socket编程(五)
今天继续学习socket网络编程,最近北京阴雨连绵,降温明显,感觉是要立马转入冬季的节奏,天冷晚上得注意多盖点被子哦,言归正传,进入正题: 对于之前写的回射客户/服务器端的程序中,我们是用的read和 ...
- 0020SpringBoot使用SpringCloud中的eureka实现远程调用
要实现远程调用,主要需要三个module:一个注册中心.一个服务提供者.一个服务消费者,然后进行各自的配置和编码,详细内容如下: 1.建一个空的project,创建3各module a.注册中心模块 ...
- git删除指定commit
1.使用git log 命令,查看已提交的记录.例如红色圈出的commit是本次要删除的commit. 2.先找到此次提交之前的一次提交的commit 1d6b81b138f89735265900b9 ...
- Laradock Laravel database connection refused
Laradock Laravel database connection refused SHARE Laradock is a PHP development environment which ...
- Mac 下 安装 Nginx
---恢复内容开始--- Mac 下 安装nginx 首先确定自己有安装homebrew 安装 nginx brew install nginx 启动nginx 1.15版本下 安装是 直接在ngin ...
- Pycharm 的常用快捷键
pycharm常用快捷键 1.编辑(Editing) Ctrl + Space 基本的代码完成(类.方法.属性) Ctrl + Alt + Space 快速导入任意类 Ctrl + Shift ...