Java 8引入的Stream API提供了一种声明式处理集合数据的方式,可以优雅地实现多条条件语句的过滤和操作。Stream API通过链式调用(filter, map, reduce等操作)来处理数据,避免了传统的if-else嵌套。
List<String> result = list.stream()
.filter(str -> str.length() > 5) // 条件1: 长度大于5
.filter(str -> str.startsWith("A")) // 条件2: 以A开头
.filter(str -> !str.contains("test")) // 条件3: 不包含test
.collect(Collectors.toList());
List<String> result = list.stream()
.filter(str -> str.length() > 5 && str.startsWith("A") && !str.contains("test"))
.collect(Collectors.toList());
Predicate<String> lengthCondition = str -> str.length() > 5;
Predicate<String> startCondition = str -> str.startsWith("A");
Predicate<String> excludeCondition = str -> !str.contains("test");
List<String> result = list.stream()
.filter(lengthCondition.and(startCondition).and(excludeCondition))
.collect(Collectors.toList());
List<String> result = list.stream()
.map(str -> {
if (str.length() > 10) {
return str.toUpperCase();
} else if (str.length() > 5) {
return str.toLowerCase();
} else {
return str;
}
})
.collect(Collectors.toList());
boolean anyMatch = list.stream()
.anyMatch(str -> str.length() > 5 && str.contains("a"));
boolean allMatch = list.stream()
.allMatch(str -> str.length() > 3);
boolean noneMatch = list.stream()
.noneMatch(str -> str.isEmpty());
没有搜到相关的沙龙