Java 8 Stream List 获取最后一个元素
在Java 8中,我们可以使用reduce
或skip
获取Stream的最后一个元素。
1. Stream.reduce
Java8Example1.java
package com.mkyong; import java.util.Arrays; import java.util.List; public class Java8Example1 { public static void main(String[] args) { List<String> list = Arrays.asList("node", "java", "c++", "react", "javascript"); String result = list.stream().reduce((first, second) -> second).orElse("no last element"); System.out.println(result); }
输出日志
javascript
进一步阅读: Java 8 Stream.reduce()示例
2. Stream.skip
Java8Example2.java
package com.mkyong; import java.util.Arrays; import java.util.List; public class Java8Example2 { public static void main(String[] args) { List<String> list = Arrays.asList("node", "java", "c++", "react", "javascript"); // get last element from a list String result = list.get(list.size() - 1); System.out.println(result); // get last element from a stream, via skip String result2 = list.stream().skip(list.size() - 1).findFirst().orElse("no last element"); System.out.println(result2); }
输出日志
javascript
javascript
转自:https://www.cnblogs.com/c68ychen/p/14208931.html
Java stream() 获取List指定元素或最后一个元素的方法
示例List
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
1、通过Stream()来获取
如果过滤器的计算结果为true,则检索该元素,否则返回最后一个元素。
int value = list.stream().filter(x -> x == 2) .findFirst() .orElse(list.get(list.size() - 1));
列表为空,则可以返回默认值,例如-1。
int value = list.stream().filter(x -> x == 2) .findFirst() .orElse(list.isEmpty() ? -1 : list.get(list.size() - 1));
2、通过for循环来实现
public static <T> T getFirstMatchingOrLast(List<? extends T> source, Predicate<? super T> predicate){ // handle empty case if(source.isEmpty()){ return null; } for(T t : source){ if(predicate.test(t)){ return t; } } return source.get(source.size() -1); }
可以这样调用:
Integer match = getFirstMatchingOrLast(ints, i -> i == 7);
转自:https://www.cjavapy.com/article/188/
分类:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2020-12-13 IntelliJ IDEA输出打印System.out.println()的快捷键
2020-12-13 springboot+mybatis查询对象时为返回null
2020-12-13 SpringBoot打印MyBatis sql日志输出