java8写一个从配置文件中读取条件,根据条件将list的数据进行skip的共通方法
时间: 2024-05-12 21:21:08 浏览: 16
以下是一个Java8的示例代码,用于读取配置文件中的条件并根据条件跳过List中的元素:
```
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Properties;
public class ListSkipper {
public static void skip(List<?> list) {
Properties props = new Properties();
try (InputStream in = new FileInputStream("config.properties")) {
props.load(in);
} catch (IOException e) {
e.printStackTrace();
return;
}
String condition = props.getProperty("skip.condition");
if (condition == null) {
return;
}
int skipCount = Integer.parseInt(props.getProperty("skip.count", "0"));
list.stream()
.skip(condition.equals("even") ? skipCount : 0)
.filter((item, index) -> index % 2 != 0)
.skip(condition.equals("odd") ? skipCount : 0)
.forEach(System.out::println);
}
}
```
此代码需要一个名为`config.properties`的配置文件,该文件应该在类路径下,并包含两个属性:
```
skip.condition=even
skip.count=2
```
其中`skip.condition`属性指定跳过偶数或奇数元素,`skip.count`属性指定要跳过的元素数量。
在本例中,`skip()`方法使用Java 8的流API来跳过列表中的元素。根据配置文件中指定的条件,它将跳过偶数或奇数索引的元素。它还将根据配置文件中指定的数量跳过一定数量的元素。最后,它将过滤剩余的元素,只保留奇数或偶数索引,并将它们打印到控制台上。
要使用此方法,请将其添加到您的Java项目中,并在需要跳过列表元素的地方调用它。例如:
```
List<String> myList = Arrays.asList("a", "b", "c", "d", "e", "f", "g", "h", "i", "j");
ListSkipper.skip(myList);
```
这将打印出以下内容:
```
b
d
f
h
j
```