Java 有没有办法用流媒体比较两个列表?
我有一个名为Java 有没有办法用流媒体比较两个列表?,java,java-8,Java,Java 8,我有一个名为MyClass的类,它包含两个成员,其中一个是myString: public class MyClass{ //... private String myString; } 现在,我有一个MyClass集合和另一个String集合 我的问题是: 如何将这两个集合与流媒体进行比较?这可能吗?您可以将MyClass列表映射到字符串列表,然后进行正常比较: List<String> anotherList = listOfMyClass.stream()
MyClass
的类,它包含两个成员,其中一个是myString
:
public class MyClass{
//...
private String myString;
}
现在,我有一个MyClass
集合和另一个String
集合
我的问题是:
如何将这两个集合与流媒体进行比较?这可能吗?您可以将
MyClass
列表映射到字符串列表,然后进行正常比较:
List<String> anotherList = listOfMyClass.stream()
.map(MyClass::getMyString) //Assuming that you have a getter for myString
.collect(Collectors.toList());
你所说的比较到底是什么意思?你想看看它们(所有元素)是否严格相等吗?是的,我想确保它们都有相同的字符串。不多也不少。我的主要问题是如何将类中的一个成员提取到不同的集合中。我用另一个示例更新了我的答案!
final String joinSeparator = ", ";
String firstResult = stringList
.stream()
.collect(Collectors.joining(joinSeparator));
String secondResult = myClassList
.stream()
.map(MyClass::getMyString)
.collect(Collectors.joining(joinSeparator));
//Just compare them using equals:
System.out.println(firstResult.equals(secondResult));