博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
list排序
阅读量:2384 次
发布时间:2019-05-10

本文共 3720 字,大约阅读时间需要 12 分钟。

实现方式: 1 Collections.sort(List
list, Comparator
c); 2 list.sort(Comparator
c) 3 stream实现 1和2是同一个;
1 list.sort(Comparator
c)
userlist.sort(new ComparatorUser());

  2 Collections.sort(List<T> list, Comparator<? super T> c);

Collections.sort(userlist, new ComparatorUser());
3 stream实现
userlist = userlist.stream()                .sorted((x, y) -> {                    int flag = x.getAge().compareTo(y.getAge());                    if (flag == 0) {                        return x.getName().compareTo(y.getName());                    } else {                        return flag;                    }                })                .collect(Collectors.toList());
全代码 测试类
import java.lang.reflect.Array;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;import java.util.stream.Collectors;/** * ClassName: Test
* Description:
* date: 2018/11/8 下午4:15
* * @author chengluchao * @since JDK 1.8 */public class Test { static List
userlist = new ArrayList(); static { userlist.add(new User("user001", "4")); userlist.add(new User("user002", "1")); userlist.add(new User("user003", "5")); userlist.add(new User("user004", "2")); userlist.add(new User("user005", "5")); userlist.add(new User("user006", "3")); userlist.add(new User("user007", "6")); } public static void main(String[] args) { java7impl(); print(); } /** * 基于java7,6,5的实现 */ static void java7impl() { userlist.sort(new ComparatorUser()); } /** * 基于java7,6,5的实现 */ static void java7impl2() { Collections.sort(userlist, new ComparatorUser()); } /** * 基于java8的实现 * 不需要写ComparatorUser类 */ static void java8impl() { Collections.sort(userlist, (x, y) -> { int flag = x.getAge().compareTo(y.getAge()); if (flag == 0) { return x.getName().compareTo(y.getName()); } else { return flag; } }); } /** * 基于java8的实现 * stream实现,更为灵活 */ static void java8impl2() { userlist = userlist.stream() .sorted((x, y) -> { int flag = x.getAge().compareTo(y.getAge()); if (flag == 0) { return x.getName().compareTo(y.getName()); } else { return flag; } }) .collect(Collectors.toList()); } static void print() { for (User user : userlist) { System.out.println(user.getAge() + "," + user.getName()); } }}

user类

 

/** * ClassName: User
* Description:
* date: 2018/11/8 下午4:10
* * @author chengluchao * @since JDK 1.8 */public class User { String name; String age; public User(String name, String age) { this.name = name; this.age = age; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
import java.util.Comparator;public class ComparatorUser implements Comparator
{ //比较的逻辑实现::://首先比较年龄,如果年龄相同,则比较名字 public int compare(User user0, User user1) { int flag = user0.getAge().compareTo(user1.getAge()); if (flag == 0) { return user0.getName().compareTo(user1.getName()); } else { return flag; } }}

输出结果:

1,user002

2,user004
3,user006
4,user001
5,user003
5,user005
6,user007

 

 

 

 

 
 
posted @
2018-11-08 17:07 阅读(
...) 评论(
...)

转载地址:http://ercab.baihongyu.com/

你可能感兴趣的文章
DirectFB代码导读
查看>>
linux fork函数浅析
查看>>
内核启动时间优化
查看>>
基于Linux的多播编程
查看>>
网络字节序
查看>>
Linux网络命令详解
查看>>
GNU C 的 __attribute__ 机制
查看>>
atoi,atol,strtod,strtol,strtoul详解
查看>>
基于HZK16的汉字显示技术
查看>>
嵌入式web服务器对比
查看>>
select 函数使用指难
查看>>
人类的15个欲望与游戏设计
查看>>
高速缓存
查看>>
kernel基本功练习
查看>>
UNIX/LINUX 平台可执行文件格式分析
查看>>
轻量级服务器选择
查看>>
补丁的制作和使用:diff和patch
查看>>
pkg-config指南
查看>>
不用任何变量,实现strlen函数
查看>>
关于C语言的位移操作
查看>>