java list .stream().filter 最大值对应的记录
时间: 2023-09-25 16:15:30 浏览: 99
Stream_Java8.pdf
假设我们有一个包含整数的列表,我们想找到列表中最大值对应的记录,可以使用以下代码:
```java
List<Integer> numbers = Arrays.asList(1, 5, 3, 8, 2);
Optional<Integer> maxNumber = numbers.stream()
.max(Comparator.comparingInt(Integer::intValue));
if (maxNumber.isPresent()) {
Integer max = maxNumber.get();
System.out.println("Max number: " + max);
Optional<Integer> maxRecord = numbers.stream()
.filter(n -> n.equals(max))
.findFirst();
if (maxRecord.isPresent()) {
Integer maxIndex = numbers.indexOf(maxRecord.get());
System.out.println("Max record index: " + maxIndex);
}
}
```
这段代码首先找到列表中的最大值,然后使用 `filter` 方法过滤出所有等于最大值的记录,并使用 `findFirst` 方法找到第一个匹配的记录。最后,使用 `indexOf` 方法找到该记录在列表中的索引。
阅读全文