使用Java8流将Object减少为Map

时间:2015-06-12 02:21:48

标签: java java-8 java-stream

如果我有类似

的课程
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的一些属性,我希望将这些属性简化为这些Map对象中的键和值的Property

我的大多数解决方案最终都不那么温文尔雅。我知道使用Collector可以很方便地完成这些操作,但我还不熟悉Java8。有什么提示吗?

1 个答案:

答案 0 :(得分: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);