java中list的sort()功能如何使用?
排序时正序/倒序处理起来可能会混淆,可以用更简单的方法。
可以使用java.util自带的比较器来做
Comparator.comparingInt(Integer::intValue).reversed() // 倒序
Comparator.comparingInt(Integer::intValue) // 正序
示例:
public class Main {
public static void main(String[] args) {
List<Integer> list = Lists.newArrayList(1, 2, 3);
list.sort(Comparator.comparingInt(Integer::intValue).reversed()); // 倒序
print(list);
list.sort(Comparator.comparingInt(Integer::intValue)); // 默认正序
print(list);
List<Integer> list2 = Lists.newArrayList(1, 2, 3);
list2 = list2.stream().sorted(Comparator.comparingInt(Integer::intValue).reversed())
.collect(Collectors.toList()); // 倒序
print(list2);
list2 = list2.stream().sorted(Comparator.comparingInt(Integer::intValue))
.collect(Collectors.toList()); // 默认正序
print(list2);
}
/**
* 输出
*/
private static <T> void print(List<T> list) {
list.forEach(e -> System.out.print(e + ","));
System.out.println();
}
}
执行输出为:
3,2,1,
1,2,3,
3,2,1,
1,2,3,
对于复杂对象,比如User,想通过年龄来比较
public class User {
public String name; // 姓名
public int age; // 年龄
public int getAge() {
return age;
}
}
可以使用:
Comparator.comparingInt(User::getAge).reversed() // 倒序
Comparator.comparingInt(User::getAge) // 正序
java中list的sort()功能如何使用?的更多相关文章
- java中list的sort()功能如何使用?如果倒序如何正序?
list.sort()接收一个Comparable接口,其中compare方法是必须实现的,int compare(T o1, T o2);,它接受两个参数:o1,o2. o2表示list排序前的前值 ...
- python 中的sort 和java中的Collections.sort()函数的使用
x=[1,2,3] x.sort()对的,x这个都变了 y=x.sort()错误 y=sorted(x)对的,x拍好序的一个副本 python中用匿名函数和自定义函数排序:(很奇怪的是比较函数返回的是 ...
- 自己实现java中Iterator(迭代器功能)
今天躺在床上忽然想到一个问题,迭代器的代码是如何实现的?于是乎不由自主的爬起来敲两行代码. List<String> list=new ArrayList<>(2); list ...
- java中List的排序功能的实现
今天在工作的时候,遇到了List排序的问题,所以总结了一下,与大家分享.Collections.sort排序的时候,用到了Comparator接口下面的compare()方法.下面的小例子中,还用到了 ...
- Java中List的sort排序重写
最近遇到需要使用list中sort排序功能,list中存的是自己写的类,所以需要重写sort函数,一般实现如下: Collections.sort(voList, new Comparator< ...
- JAVA中如何使用SORT从大到小排
import java.util.Arrays;import java.util.Collections;public class Test { public static void main(Str ...
- Java中使用Collections.sort()方法对数字和字符串泛型的LIst进行排序
在List的排序中常用的是Collections.sort()方法,可以对String类型和Integer类型泛型的List集合进行排序. 首先演示sort()方法对Integer类型泛型的List排 ...
- C#、Java中的一些小功能点总结(持续更新......)
前言:在项目中,有时候一些小的功能点,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小功能点,以备用,并持续更新...... 1.禁用DataGrid ...
- java中实现全局变量的功能
一.通过接口实现 二.通过静态变量 static声明 package test.autorun; import java.util.LinkedList; import java.util.Queu ...
随机推荐
- MySQL插入操作
说明:value的值可以为数据,DEFAULT,NULL,expr 含有ATUO_INCREMENT的列可以插入DEFAULT.NULL,或者不插入记录来实现自动增长. 插入记录的三种方法:①可以同时 ...
- 【LC_Overview1_5】---学会总结回顾
刷LeetCode题目一周,主要采用C++和Python编程手段,截至目前做了5道简单的leetcode题目,做下阶段性的小结: 小结主要通过手撕代码,复习加回顾,尽量避免自己眼高手低的情况发生,对于 ...
- Educational Codeforces Round 80 (Rated for Div. 2)
A. Deadline 题目链接:https://codeforces.com/contest/1288/problem/A 题意: 给你一个 N 和 D,问是否存在一个 X , 使得 $x+\lce ...
- 贪心 + DFS
A New Year party is not a New Year party without lemonade! As usual, you are expecting a lot of gues ...
- PowerDesigner配置Oracle数据库反向工程
PowerDesigner配置Oracle数据库反向工程 作者:Jesai 贴吧:软件频道吧 1. 前言: PowerDesigner是Sybase的企业建模和设计解决方案,采用模型驱动方法,将业务与 ...
- C++模板编程与宏编程经验谈
C++模板编程与宏编程经验谈 有人说C 与C++的不同主要是因为C++支持模板,不要说区别是面向对象化编程,因为C同样能很好的实现对象化编程,面向对象化其实只是思想,在很多语言中都能实现,区别在于实现 ...
- Zero down time upgrade with OGG -from 11g to 12c.
High level steps upgrade from 11g to 12c database: 1) Check network between source and target. 2) ...
- 个人第四次作业——Alpha测试
Alpha项目测试 这个作业属于哪个课程 链接 这个作业要求在哪里 链接 团队名称 愿头发与你我同在 这个作业的目标 测试非本组的另外三组项目 姓名 张伟 学号 201731024216 测试报告 一 ...
- BERT模型总结
BERT模型总结 前言 BERT是在Google论文<BERT: Pre-training of Deep Bidirectional Transformers for Language U ...
- Day2-Python3基础-文件操作
1. 字符编码与转码 需知: 1.在python3默认编码是unicode 2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so ut ...