public static void main(String[] args) {
// create a Deque that holds Integers
Deque<Integer> myDQ = new ArrayDeque<Integer>();
// add some of them
myDQ.add(12);
myDQ.add(13);
myDQ.add(14);
myDQ.add(15);
myDQ.add(16);
myDQ.add(20);
myDQ.add(17);
myDQ.add(18);
myDQ.add(19);
// and print
System.out.println(
myDQ.stream()
.max(Integer::compareTo) // the largest one
.get() // not as Optional but only as Integer
);
}
deque.stream().mapToInt(Integer::intValue)
.max()
.ifPresentOrElse(System.out::println,
() -> throw new RuntimeException("Attempt to get max of empty collection"));
5条答案
按热度按时间y0u0uwnf1#
那是因为
max
方法java.util.Stream
返回包含在Optional
. 这是max方法的签名Optional<T> max(Comparator<? super T> comparator);
下面的示例将为您提供预期的行为:b1zrtrql2#
您可以按以下步骤进行:
请注意
deque.stream().max(Integer::compareTo)
退货Optional<Integer>
.或者,
wj8zmpe13#
您只需使用编写的代码并通过
.get()
.以下代码
只是指纹
20
.piok6c0g4#
这个
max
-方法返回java.util.Optional
. 如果只想返回一个int值,可以使用orElse
-方法来自java.util.Optional
返回给定值,如果不存在,则返回另一个默认值。qcbq4gxm5#
您可以取消对队列中整数 Package 器的装箱,并使用intstream.max(),它将返回一个optionant:
如果
max()
退货OptionalInt.empty()
,当deque为空时发生。如果要检查空,可以执行以下操作,例如: