Java 8 Java8流:添加验证以避免重复密钥
以下代码在尝试添加重复id时引发异常。如何修改代码以避免重复Java 8 Java8流:添加验证以避免重复密钥,java-8,java-stream,Java 8,Java Stream,以下代码在尝试添加重复id时引发异常。如何修改代码以避免重复 return Optional.ofNullable(list) .isPresent() ? (list.stream() .collect(Collectors.toMap(ViewObject::getId, viewObject -> viewObject))) : new HashMap<>(); return可选。不可用(列表) .isPresent()?(list.stream() .co
return Optional.ofNullable(list)
.isPresent() ? (list.stream()
.collect(Collectors.toMap(ViewObject::getId, viewObject -> viewObject))) : new HashMap<>();
return可选。不可用(列表)
.isPresent()?(list.stream()
.collect(Collectors.toMap(ViewObject::getId,ViewObject->ViewObject)):new HashMap();
有一个oftoMap
,允许指定合并功能
:
Collectors.toMap(ViewObject::getId,
viewObject -> viewObject,
(a, b) -> a // Resolve the duplicates here
)
另外,Optional.ofNullable(list).isPresent()似乎没有必要。如果列表为null
,则可以通过初始化列表来完全跳过它<代码>可选
s应在方法签名中使用,而不是在方法正文中使用。有一个允许指定合并函数的toMap
:
Collectors.toMap(ViewObject::getId,
viewObject -> viewObject,
(a, b) -> a // Resolve the duplicates here
)
另外,Optional.ofNullable(list).isPresent()似乎没有必要。如果列表为null
,则可以通过初始化列表来完全跳过它Optional
s应在方法签名中使用,而不是在方法正文中使用。请参阅此Optional.ofNullable(list)。isPresent()
是检查list!=空
。如果要不惜一切代价避免使用普通运算符,请使用returnobjects.requirenonullElse(list,Collections.emptyList()).stream().collect(Collectors.toMap(ViewObject::getId,ViewObject->ViewObject))代码>请参阅此可选。ofNullable(list)。isPresent()
是检查列表!=空
。如果要不惜一切代价避免使用普通运算符,请使用returnobjects.requirenonullElse(list,Collections.emptyList()).stream().collect(Collectors.toMap(ViewObject::getId,ViewObject->ViewObject))代码>