java8写一个从配置文件中获取多个条件,并将list中满足条件的数据skip掉的共通方法
时间: 2024-04-30 15:23:52 浏览: 17
以下是一个Java 8的示例代码,用于从配置文件中获取多个条件,并将list中满足条件的数据skip掉:
```java
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class ConfigSkipper {
public static <T> List<T> skipByConfig(List<T> list, String configFilePath) throws IOException {
// 读取配置文件
Map<String, String> config = Files.lines(Paths.get(configFilePath))
.map(line -> line.split("="))
.collect(Collectors.toMap(parts -> parts[0], parts -> parts[1]));
// 执行跳过操作
for (Map.Entry<String, String> entry : config.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
switch (key) {
case "skipIfContains":
list = list.stream().filter(item -> !item.toString().contains(value)).collect(Collectors.toList());
break;
case "skipIfStartsWith":
list = list.stream().filter(item -> !item.toString().startsWith(value)).collect(Collectors.toList());
break;
case "skipIfEndsWith":
list = list.stream().filter(item -> !item.toString().endsWith(value)).collect(Collectors.toList());
break;
default:
break;
}
}
return list;
}
}
```
使用示例:
```java
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class Example {
public static void main(String[] args) throws IOException {
List<String> list = Arrays.asList("apple", "banana", "orange", "peach");
// 从配置文件中获取条件并跳过
List<String> result = ConfigSkipper.skipByConfig(list, "config.txt");
System.out.println(result); // 输出 [banana, peach]
}
}
```
其中配置文件 `config.txt` 内容如下:
```
skipIfContains=a
skipIfEndsWith=e
```
这表示要跳过包含字母 "a" 或以字母 "e" 结尾的元素。因此,最终结果中只有 "banana" 和 "peach" 两个元素。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)