stream List<String>取最大值
时间: 2023-11-11 12:59:49 浏览: 121
要取得一个 `List<String>` 中最大的元素,需要对其中的每个元素进行比较。但是由于 `String` 类型没有内置的大小比较方法,因此需要使用 `Comparator` 接口来定义一个比较器。
下面是一个使用 `Comparator` 接口的示例代码:
```java
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
String max = Collections.max(list, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareTo(s2);
}
});
System.out.println("Max element: " + max);
```
在上面的代码中,我们使用 `Collections.max` 方法来获取列表中的最大元素。该方法需要传入一个 `Comparator` 对象来比较列表中的元素。我们使用匿名内部类来创建一个 `Comparator` 对象,实现 `compare` 方法来比较两个字符串的大小。最后,我们打印出最大的元素。
需要注意的是,这种方式只适用于对 `List<String>` 中的元素进行字典序比较。如果需要进行其他类型的比较,需要在 `compare` 方法中实现相应的逻辑。
相关问题
List<String>转换List<Double>并取出最大值
可以使用Java 8的Stream API来完成这个任务,使用map方法将List<String>中的每个元素转换成List<Double>,然后再使用max方法取出最大值。具体代码如下:
```
List<String> strList = Arrays.asList("1.2", "3.4", "5.6", "7.8");
List<Double> doubleList = strList.stream().map(Double::parseDouble).collect(Collectors.toList());
double max = doubleList.stream().max(Double::compare).orElse(0.0);
System.out.println(max);
```
输出结果为7.8。
java 获取List<String>集合中的最大值
可以使用Java 8中的Stream API来实现获取List<String>集合中的最大值。先将List<String>转为Stream<String>,然后调用max方法并传入比较器Comparator.comparing(String::length),即可获取最大值。
示例代码如下:
```
List<String> list = Arrays.asList("apple", "banana", "cherry", "durian");
String maxString = list.stream()
.max(Comparator.comparing(String::length))
.orElse("");
System.out.println("List中最大值为: " + maxString);
```
执行结果为:
```
List中最大值为: banana
```
阅读全文