【发布时间】:2020-06-01 21:16:06
【问题描述】:
在我的Java 应用程序中,我有一个类:
public class MyStructure {
SomeClass someClass;
String[] fields;
...
}
现在,我有一个以上结构的列表:
List< MyStructure> structures = getStructures();
我还有一个字符串列表:
List<String> myList = getStrings();
我需要过滤第一个列表 (structures),使其仅包含元素,在其 fields 数组中包含 myList 上存在的任何字符串。
我想过写一个 for 循环,比如:
List<MyStructure> outcomeStructures = new ArrayList<>();
for (MyStructure mystructure : structures) {
for (String temp : mystructure.getFields()) {
if (myList.contains(temp) {
outcomeStructures.add(mystructure);
}
}
}
但也许有更好的方法可以做到这一点?谢谢!
【问题讨论】:
-
这不行吗?
-
了解 Java 流功能。我相信这正是您想要的。
标签: java for-loop java-8 java-stream