java的list的几种排序写法整理(sort的用法)
来源:互联网 发布:js div左右滑动切换 编辑:程序博客网 时间:2024/05/16 10:42
java的实体bean结构
import java.util.ArrayList;import java.util.List;public class Human { private String name; private int age; public Human() { } public Human(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @SuppressWarnings("serial") public static List<Human> getAInitHumanList() { return new ArrayList<Human>() { { add(new Human("guorao", 10)); add(new Human("mako", 12)); add(new Human("hel", 30)); add(new Human("lin", 28)); } }; } @Override public String toString() { return this.getName() + ":" + this.getAge(); }}
第一种:实现Comparator接口的类的对象作为sort的入参
public class HumanComparetor implements Comparator<Human> { @Override public int compare(Human h1, Human h2) { if (h1.getAge() > h2.getAge()) { return 1; } else if (h1.getAge() == h2.getAge()) { return 0; } else { return -1; } }}
public static void main(String[] args) { List<Human> humans = Human.getAInitHumanList(); Collections.sort(humans, new HumanComparetor()); System.out.println(humans); }
第二种:在方法的局部使用局部类,原理和第一种差不多
public static void main(String[] args) { List<Human> humans = Human.getAInitHumanList(); //方法内-局部类 class HumanComparetor implements Comparator<Human> { @Override public int compare(Human h1, Human h2) { return h1.getAge() - h2.getAge(); } } Collections.sort(humans, new HumanComparetor()); System.out.println(humans); }
第三种:基于第二种方法,局部类改为匿名类
public static void main(String[] args) { List<Human> humans = Human.getAInitHumanList(); //匿名类 Collections.sort(humans, new Comparator<Human>() { @Override public int compare(Human h1, Human h2) { return h1.getAge() - h2.getAge(); } }); System.out.println(humans); }
第四种:使用lamdba表达式->这种形式
public static void main(String[] args) { List<Human> humans = Human.getAInitHumanList(); //lamdba 表达式 -> Collections.sort(humans, (Human h1, Human h2) -> h1.getAge() - h2.getAge()); System.out.println(humans); }
第五种:借助Comparator和lamdba表达式多条件排序
public static void main(String[] args) { List<Human> humans = Human.getAInitHumanList(); ////lamdba 表达式 :: Collections.sort(humans, Comparator.comparing(Human::getAge).thenComparing(Human::getName)); System.out.println(humans); }
第六种:调用方式和第五种有区别,原理一样
public static void main(String[] args) { List<Human> humans = Human.getAInitHumanList(); //直接用list.sort humans.sort(Comparator.comparing(Human::getAge).thenComparing(Human::getName)); System.out.println(humans); }
阅读全文
0 0
- java的list的几种排序写法整理(sort的用法)
- Sort 排序的几种用法
- java中list排序:Collections.sort() 排序函数的用法
- java冒泡排序的几种写法
- C#中List的排序用法(Sort)
- C#中List的排序用法(Sort)
- C#中List的排序用法(Sort)
- C#中List的排序用法(Sort)
- Java中Array.sort()的几种用法
- Java中Array.sort()的几种用法
- Java中Array.sort()的几种用法
- 关于java中Arrays.sort()的几种用法
- Java中Array.sort()的几种用法
- Java原来如此-几种常见的排序--冒泡排序(Bubble Sort)
- C#中List<T>的排序用法(Sort)
- 常见的几种Sort排序算法
- 关于sort函数的几种用法
- 关于sort函数的几种用法
- SharpZipLib 解压 多个分压缩包文件
- Greenplum Resource Queue (资源队列)
- JS美化input按钮,IE错误的原因
- AVPass技术分析:银行劫持类病毒鼻祖BankBot再度来袭,如何绕过谷歌play的杀毒引擎?
- ftp
- java的list的几种排序写法整理(sort的用法)
- Oracle中 delete,truncate,drop的区别
- 前端开发工具webStorm快捷键和主题推荐
- Service播放音乐
- zoj1383 zoj3418 二进制 基础
- NHibernate中处理同名实体的解决办法
- Gradle入门系列(1):简介
- vue-cli脚手架构建了项目,想去除Eslint验证,如何设置?
- HDU