lambda中的私有函数用于创建HashMap

时间:2017-03-22 18:20:26

标签: java lambda private

我有一个包含以下信息的信息流:

X :{
   Y :{
       A :{ "key1" },
       B :{"value1"}
       C : {}
       ...
     }
}

Stream将包含X对象的List,其中X,Y,A,B和C是Object类型。

我想使用带有值

的Java 8 Lambda创建一个Map
        {
            key1:value1
        }

如果对象C不存在,则不应出现键值对。

我尝试使用下面给出的代码来获取密钥列表,但无法创建密钥和值的映射。

X.stream().map(p -> p.getAllYForX())
.filter(Optional::isPresent)
.map(Optional::get)
.filter(p -> checkifCExists(p))
.map(p -> p.getAllAForY(Y))
.filter(Optional::isPresent)
.map(Optional::get)
.map(p -> p.getKeys())
.filter(StringUtils:isNotBlank)
.collect(Collectors.toList());

函数定义如下:

getAllYForX()返回Optional

checkIfCExists()返回一个布尔值,如果C存在于块中

getAllAForY()是私有函数,它返回Optional

getAllBForY()是私有函数,返回Optional

A.getKeys返回String。例如:“key1”

B.getValue返回String。例如:“value1”

0 个答案:

没有答案