使用Java8流将对象转换为Map

3
如果我有一个如下的类:
public class Property {
    private String id;
    private String key;
    private String value;

    public Property(String id, String key, String value) {
        this.id = id;
        this.key = key;
        this.value = value;
    }
    //getters and setters
}

我有一个Set<Property> properties,其中包含几个属性,我想将其缩减为一个只包含这些Property对象的键和值的Map

我的大多数解决方案都不够优雅。我知道有一种方便的方法可以使用Collector来实现,但我还不太熟悉Java8。有什么提示吗?

1个回答

7
    Set<Property> properties = new HashSet<>();
    properties.add(new Property("0", "a", "A"));
    properties.add(new Property("1", "b", "B"));
    Map<String, String> result = properties.stream()
        .collect(Collectors.toMap(p -> p.key, p -> p.value));
    System.out.println(result);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接