配置文件中写了多个条件,用java8写一个将list中满足条件的数据skip掉的共通方法
时间: 2024-05-15 13:16:55 浏览: 228
假设我们有一个List的数据结构,可以使用Java 8的Stream API来过滤和跳过满足条件的数据。
以下是使用Java 8的Stream API编写的跳过满足条件的数据的通用方法:
```
public static <T> List<T> skipIf(List<T> list, Predicate<T>... conditions) {
return list.stream()
.filter(item -> {
for (Predicate<T> condition : conditions) {
if (condition.test(item)) {
return false;
}
}
return true;
})
.collect(Collectors.toList());
}
```
该方法接受一个List和一个或多个Predicate参数。在方法内部,我们使用Stream API的filter方法来过滤掉满足任何一个条件的元素,然后使用collect方法将过滤后的元素收集到一个新的List中并返回。
以下是使用示例:
```
List<String> list = Arrays.asList("apple", "banana", "orange", "pear", "peach");
List<String> result = skipIf(list, s -> s.startsWith("a"), s -> s.length() > 5);
System.out.println(result); // Output: [orange, pear]
```
在上面的示例中,我们创建了一个包含5个String元素的List。然后我们调用skipIf方法并传递两个Predicate参数:第一个要求元素必须不以字母"a"开头,第二个要求元素的长度必须小于或等于5。结果,我们得到了一个新的List,其中包含满足这两个条件的元素。
阅读全文