(); list.add(1-6ren">
gpt4 book ai didi

Java 8 流 "ifPresent"

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:51:56 26 4
gpt4 key购买 nike

我正在尝试了解流并遇到了一个问题:我想获取列表的最小值并将其分配给一个 int 变量。为此,我做了以下事情:

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
int smallest = list.stream().min(Integer::compareTo).get();
System.out.println(smallest);

这很好用,结果我得到了 1。问题是 IDE 发出警告,指出在检查 .isPresent 之前调用了 Optional.get。为了解决这个问题,我使用了稍微不同的 ifPresent 方法并尝试了以下操作:

int smallest = list.stream().min(Integer::compareTo).ifPresent(integer -> integer);

不幸的是,这不起作用,因为我收到警告:Lambda 中的返回类型错误,无法将整数转换为 void。我最后的问题是:如何在检查 ifPresent 的情况下将最小值分配给 int smallest 变量?

最佳答案

这是我的做法:

package lambdas;

import java.util.ArrayList;
import java.util.List;

/**
* Created by Michael
* Creation date 7/31/2016.
* @link https://stackoverflow.com/questions/38688119/java-8-streams-ifpresent
*/
public class MinimumExample {

public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
int smallest = list.stream().min(Integer::compareTo).orElse(Integer.MIN_VALUE);
System.out.println(smallest);
}
}

关于Java 8 流 "ifPresent",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38688119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com