
本文旨在介绍如何使用 Java Stream API 处理 `Map
有时候,我们需要知道 Map 中所有 List 的最大长度。可以使用 Stream API 简洁地实现:
import java.util.List;
import java.util.Map;
import java.util.OptionalInt;
public class Main {
public static <K, V> int getMaxSize(Map<K, List<V>> map) {
return map.values().stream()
.mapToInt(List::size)
.max()
.orElse(0);
}
public static void main(String[] args) {
// 示例数据
Map<String, List<String>> data = Map.of(
"car", List.of("toyota", "bmw", "honda"),
"fruit", List.of("apple", "banana"),
"computer", List.of("acer", "asus", "ibm")
);
int maxSize = getMaxSize(data);
System.out.println("Maximum list size: " + maxSize); // 输出:Maximum list size: 3
if (maxSize > 2) {
System.out.println("At least one list has more than 2 elements.");
}
}
}代码解释:
注意事项:
立即学习“Java免费学习笔记(深入)”;
更常见的需求是筛选出 List 大小超过指定值的键值对,并进行进一步处理。以下代码演示了如何实现:
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static <K, V> Map<K, List<V>> getEntriesLargerThan(Map<K, List<V>> map, int size) {
return map.entrySet().stream()
.filter(e -> e.getValue().size() > size)
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue
));
}
public static void main(String[] args) {
// 示例数据
Map<String, List<String>> data = Map.of(
"car", List.of("toyota", "bmw", "honda"),
"fruit", List.of("apple", "banana"),
"computer", List.of("acer", "asus", "ibm")
);
Map<String, List<String>> filteredMap = getEntriesLargerThan(data, 2);
System.out.println("Entries with list size greater than 2:");
filteredMap.forEach((k, v) -> System.out.println(k + " -> " + v));
}
}代码解释:
输出结果:
Entries with list size greater than 2: car -> [toyota, bmw, honda] computer -> [acer, asus, ibm]
注意事项:
立即学习“Java免费学习笔记(深入)”;
本文介绍了如何使用 Java Stream API 处理 Map<String, List<String>> 类型的数据,包括获取 List 大小的最大值,以及筛选出 List 大小超过指定值的键值对。 通过这些示例,可以更高效地处理包含集合数据的 Map,并根据特定条件进行过滤和转换。 掌握这些技巧可以提高代码的简洁性和可读性。
以上就是使用 Java Stream 过滤 Map 中 List 大小超过指定值的元素的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号