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));