Java 8 - ParallelStream forEach在尝试创建JSON对象时发出错误

时间:2018-01-08 12:26:31

标签: lambda java-8 java-stream

尝试创建两个JSONObjects和值并为Arraylist获取它。 我使用Java8 ParallelStream和forEach功能来实现这一目标。

请在下面找到我的代码,我无法在单个forEach方法中创建两个JSONobject。

出现错误:userlist cannot be resolved

user_list.parallelStream().forEach((userlist) -> 
     purchaserDetail.put("Purchaser", userlist.getName()),
     purchaserDetail.put("Purchaser_Email", userlist.getEmail_address()) ) ;

2 个答案:

答案 0 :(得分:2)

多个语句需要大括号:

user_list.parallelStream().forEach((userlist) -> {
     purchaserDetail.put("Purchaser", userlist.getName());
     purchaserDetail.put("Purchaser_Email", userlist.getEmail_address());});

如果您关心将元素放入forEachOrdered的顺序,则可能需要使用purchaserDetail

答案 1 :(得分:0)

同意@Eran的回答以包装成{}。我不认为这是线程安全的,因为同一个对象purchaseserDetail是由并行流放置的,当想要放到同一个对象时不要使用并行流,除非正在操作的对象是线程安全的实现(即的ConcurrentHashMap)