stream就求list<string> 字符串数值中 最大值
时间: 2024-11-13 19:21:43 浏览: 101
在Java中,如果你有一个`List<String>`类型的列表,其中包含可以转换为数字(例如整数或浮点数)的字符串,你可以使用`Stream` API 来找到最大值。首先,你需要将每个元素转换为数字,然后利用`max()`函数找出最大值。以下是步骤:
```java
import java.util.*;
import java.text.DecimalFormat;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("5", "10", "3", "8.5", "7.1");
// 将String列表转换为数值流
Stream<String> strStream = stringList.stream();
// 使用map转换每个元素为Number对象,并假设都是Integer类型
Stream<Integer> numStream = strStream.map(Objects::toString)
.mapToInt(Integer::parseInt); // 如果有可能是float,可以用Double::parseDouble
// 找出最大值
Optional<Integer> maxValue = numStream.max();
// 处理Optional,如果存在最大值则打印,不存在则提示
if (maxValue.isPresent()) {
System.out.println("最大值是: " + maxValue.get());
} else {
System.out.println("列表中没有有效的数字");
}
}
}
```
在这个例子中,我们假设所有字符串都能成功解析为整数。如果列表中有无法转换为数字的元素,`parseInt()`会抛出异常。为了处理这种情况,通常会在转换前先检查字符串是否能被解析。
阅读全文