从Set <customobject>获取项目到其属性列表

时间:2017-09-27 19:11:56

标签: java lambda collections java-8

我有一个关于在Collection中找到某个项目的问题,例如Set

给出一个课程:

private class User{
    Set<String> names = new HashSet<>();

    User(Set<String> name){
        this.names = name;
    }

    public Set<String> getNames() {
        return names;
    }
}

这段代码:

Set<String> firstSetInside = new HashSet<>();
firstSetInside.add("someName1");
firstSetInside.add("someName2");

Set<String> secondSetInside = new HashSet<>();
secondSetInside.add("someName1");
secondSetInside.add("someName2");

User user = new User(firstSetInside);
User user2 = new User(secondSetInside);

Set<User> userSet = new HashSet<>();
userSet.add(user);
userSet.add(user2);

如何正确地将所有名称"someNameX"添加到一个列表中?

我知道我应该使用lambdas,但它是如何正确的?

1 个答案:

答案 0 :(得分:-1)

要获取User中所有userSet的所有姓名的具体列表,您可以使用:

List<String> allNames = new ArrayList<>();
userSet.stream().map(User::getNames).forEach(allNames::addAll);