用java8写一个从配置文件中读取数据,并将list中满足条件的数据从list中移除的共通方法
时间: 2024-05-14 07:12:42 浏览: 152
以下是用Java 8编写的从配置文件中读取数据,并将满足条件的数据从list中移除的通用方法示例:
```java
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.function.Predicate;
public class ConfigReader {
public static <T> void removeIf(List<T> list, String configFilePath, Predicate<T> predicate) {
Properties properties = new Properties();
try (FileInputStream inputStream = new FileInputStream(configFilePath)) {
properties.load(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
list.removeIf(predicate.and(item -> properties.containsKey(item.toString())));
}
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
list.add("grape");
removeIf(list, "config.properties", s -> s.startsWith("a"));
System.out.println(list);
}
}
```
该方法接受三个参数:要处理的列表,配置文件的路径和谓词。它首先读取配置文件并加载其属性,然后使用谓词过滤列表中的元素,并使用属性键检查过滤后的元素是否存在于配置文件中。如果存在,则将其从列表中移除。
在上面的示例中,我们传递了一个字符串列表和一个以“.properties”为扩展名的配置文件的路径。我们使用一个谓词来检查字符串是否以“a”开头,如果是,则将其从列表中移除。
阅读全文