有没有比较两个列表与流的方式?

问题描述:

我有一个名为MyClass类,它包含几个成员,其中一人是myString有没有比较两个列表与流的方式?

public class MyClass{ 
    //... 
    private String myString; 
} 

现在,我有一个MyClass收集和String另一个集合。

我的问题是:

如何将这些两个集合与流比较?那可能吗?

+0

你是什么意思,通过比较?你想看看他们两个(所有元素)是否严格相等? –

+0

是的,我想确保它们都有相同的字符串。不多也不少。 – Hasholef

+0

我的主要问题是如何只将一个类的成员拉出到不同的集合中。 – Hasholef

你可以的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));