List.stream().min

一个数据比较的小实验。不知道还能写几个小技巧。mark一下。

i

import java.util.Arrays;

import java.util.Comparator;

import java.util.List;

import java.util.Optional;

public class CmpMain {

/**

* Default constructor

*/

public CmpMain() {

}

public static void main(String\[\] args) {

List<Integer> allRows = Arrays.asList(1, 3, 5, 7, 9, 11);

int refNum = 6;

Optional<Integer> minDifRowOpt = allRows.stream()

.min((r1, r2) -> Long.compare(getAbsDif(r1, refNum), getAbsDif(r2, refNum)));

Optional<Integer> minDifRowOpt2 = allRows.stream()

.min(Comparator.comparing(r->getAbsDif(r, refNum)));

System.out.println(minDifRowOpt.get());

System.out.println(minDifRowOpt2.get());

}

public static int getAbsDif(int r, int subNum) {

return Math.abs(r - subNum);

}

}

相关推荐
Fuyo_11199 分钟前
深入解析 C++ unordered_set 与 unordered_map 的核心特性与性能实战
开发语言·c++
从琳开始98920 分钟前
从Socket到UDP回显服务器:Java网络编程完整指南
java·网络·网络协议·udp·java-ee
ShineWinsu41 分钟前
对于Qt:QPushButton常见属性的解析
开发语言·c++·qt·api·gui·按钮·qpushbutton
外贸GEO优化42 分钟前
外贸独立站的可抓取性:JS 渲染、懒加载与无限滚动到底影响什么
开发语言·javascript·ecmascript
飞浪纪元[FWC–FE]42 分钟前
Qt 工程创建与 CMake / qmake 构建规范
开发语言·数据库·qt
后台模板学习1 小时前
Go Web开发中任务调度框架的源码解析与高可用实现方案
开发语言·后端·golang
西瓜拿铁好喝1 小时前
开源和闭源 AI 办公工具,分别适合谁
java·前端·数据库
学长毕设1 小时前
基于SpringBoot的校园礼服租赁系统的设计与实现
java·spring boot·后端
明天也要努力学习1 小时前
深入理解 JVM 垃圾回收(GC)
java·jvm