有没有比较两个列表与流的方式?
问题描述:
我有一个名为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());
你也可以加入列表中的所有元素在单一String
,并将它们直接比较。这仅在两个列表中的元素的顺序应该相同的情况下才有效。下面的例子:
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));
你是什么意思,通过比较?你想看看他们两个(所有元素)是否严格相等? –
是的,我想确保它们都有相同的字符串。不多也不少。 – Hasholef
我的主要问题是如何只将一个类的成员拉出到不同的集合中。 – Hasholef