[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 类名的方式,它会告诉编译器有这么一个类,目前不需要知道它内部的实例变量和方法是如何定义 ...
随机推荐
- Java 函数调用是传值还是传引用? 从字节码角度来看看!
原文地址:点击打开
- 算法学习:我终于明白二分查找的时间复杂度为什么是O(logn)了
最近发现了个好东西,就是一个学算法的好东西,是网易公开课的一个视频. 直通车 这是麻省理工学院的公开课,有中英字幕,感谢网易.. 也可以在App把视频缓存下来之后再放到电脑上面看,因为我这样可以倍速, ...
- Django+bootstrap+注册登录系统
转自:https://www.cnblogs.com/robindong/p/9610057.html Robin_D 博客园 首页 新随笔 联系 订阅 管理 随笔 - 10 文章 - 0 评论 ...
- 用python批量插入数据到数据库中
既然使用python操作数据库必不可少的得使用pymysql模块 可使用两种方式进行下载安装: 1.使用pip方式下载安装 pip install pymysql 2.IDE方式 安装完成后就可以正常 ...
- springboot中的小技巧
1.Thymeleaf 在时使用Thymeleaf的时候不用设置html标签:在默认的Thymeleaf的页面中,对于.html的要求比较严格,少写或者多写标签,都会被报错,而在springboot ...
- Java线程(1)
多线程快速入门 线程与进程区别 每个正在系统上运行的程序都是一个进程.每个进程包含一到多个线程.线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行.也可以把它理解为代码运行的上下文.所以 ...
- PHP message: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted 错误
php运行一段时间后,部分页面打不开,查看nginx日志里面一直在报PHP message: PHP Fatal error: Allowed memory size of 134217728 by ...
- html简单知识
一.html标签的特征: 1.空白折叠现象 2.对空格和换行不敏感 3.标签要严格封闭 二.p标签的嵌套 p中只能存放字体.图片.表单控件,不能放盒子标签 三.html中标签的分类 1.行内标签 在一 ...
- WinForm DevExpress使用之ChartControl控件绘制图表一——基础
最近因为公司项目需要用到WinForm的DecExpress控件,在这里把一些使用方法总结一下. DevExpress中有一个专门用来绘制图表的插件ChartControl,可以绘制折线图.饼状图.柱 ...
- web-----chrome DevTools工具的常用使用记录
注:1.Chrome浏览器,2.在浏览器页面 右键--->检查,即可看到此页面 跟开发沟通过.他们查看一个页面的性能一般都会使用”检查“来观测.查找对应的数据记录. 设置网络的网速和通过设置某 ...