[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 类名的方式,它会告诉编译器有这么一个类,目前不需要知道它内部的实例变量和方法是如何定义 ...
随机推荐
- mysql数据库的多实例与主从同步。
1.MySQL的多实例: 多实例的特点:能够有效地利用服务器的资源,节约服务器的资源 MySQL多实例的配置有两种,第一是使用一个配置文件,这种方法不推荐使用,容易出错:第二种是用多个配置文件,这种方 ...
- SQL SERVER-LinkServer搬迁
选中linkserver,按F7打开对象游览器, 选中linkserver,生成脚本. 把密码填入脚本运行即可 USE [master] GO /****** Object: LinkedServer ...
- unittest 运行slenium(一)---创建配置类
文章主要是创建: log : 日志文件 excel :文档的读写 ini 及 yaml :文件的读取 一:创建log日志文件 主要是对logging框架进行二次封装并输出自己需要的日志格式 1. 首先 ...
- Linux命令——yum
翻译自:20 Linux YUM (Yellowdog Updater, Modified) Commands for Package Management 前言 本篇文章将介绍如何使用RedHat开 ...
- 缺包与maven
一. 缺包 1. 打开pom.xml 将依赖加入. 2. mvn clean install -DskipTests 3. scp target/lib/****.jar(刚刚的依赖的架包) 服务器地 ...
- webpack4 打包优化
1 参考文章 彻底解决 webpack 打包文件体积过大 webpack4提升180%编译速度 详解webpack4之splitchunksPlugin代码包分拆 webpack v4 中的断舍离 开 ...
- 使用docker简单启动springboot项目
1.搭建docker环境 需要linux系统必须是centOS7以上 执行一下命令: yum install epel-release –y yum clean all yum list 2.安装 y ...
- Nutch2.1+mysql+solr3.6.1+中文网站抓取
1.mysql 数据库配置 linux mysql安装步骤省略. 在首先进入/etc/my.cnf (mysql为5.1的话就不用修改my.cnf,会导致mysql不能启动)在[mysqld] 下添加 ...
- python - django (cookie)
# """ Cookile: # 因为 HTTP 请求是没有状态的,每一次请求都是独立的 Cookile 的存储: # 保存在浏览器上的 键值对. # 服务器控制着响应, ...
- 使用jQuery快速高效制作网页交互特效---JavaScript对象及初始面向对象
一.JavaScript中的基本数据类型 number(数值类型) string(字符串类型) boolean(布尔类型) null(空类型) undefined(未定义类型) ...