java - 删除列表中包含某些单词的项目的有效方法?

标签 java

很简单的问题,我有

List<String> forbidden_words = Arrays.asList("test","one","two");

List<String> list1 = Arrays.asList("eiofjfrgj_test","oiione","rrrtwo", "normal", "word");

我想删除 list1 中包含禁用单词的元素,以便在 list1 中得到“正常”和“单词”。最好的方法是什么?

最佳答案

我会这样写:

List<String> forbiddenWords = Arrays.asList("test","one","two");
List<String> words = Arrays.asList("eiofjfrgj_test","oiione","rrrtwo", "normal", "word");

List<String> filtered = words.stream()
    .filter(word -> !forbiddenWords.stream().anyMatch(forbiddenWord -> word.contains(forbiddenWord)))
    .collect(Collectors.toList());

System.out.println(filtered);

关于java - 删除列表中包含某些单词的项目的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61483009/

相关文章:

java - 获取 equals 函数中使用的所有实例字段的名称

java - 确保 RMI 仅在一个服务器实例上运行

java - 如何读取 while 循环内带有空格的字符串 (Java)

javascript - OAuth 2.0 是保护 Web 服务访问的合适工具吗?

java - 在 JSPF 中获取当前页面的完整 url

java - 在Jframe中添加循环

Java for 线程一起启动的循环(几乎同时)

java - 不兼容的类型 Void 和 Object - Java 泛型

java - Spring MVC(Spring Boot)——RequestMapping继承

java - 如何在 OS X 上的 JavaFX 中显示表情符号?