小编Pau*_*ens的帖子

有没有一种优雅的方法将Map <P,Optional <Q >>转换为稀疏Map <P,Q>?

是否有一种优雅的方式将其转换Map<P, Optional<Q>>为稀疏Map<P, Q>?

这应该工作,但它有点meh:

Map<P,Optional<Q>> map = ...;
Map<P,Q> map2 = map.entrySet()
                  .stream().filter(e -> e.getValue().isPresent())
                  .collect(Collectors.toMap(e -> e.getKey(), e->e.getValue().get()));
Run Code Online (Sandbox Code Playgroud)

java functional-programming java-8 java-stream

19
推荐指数
3
解决办法
935
查看次数

Collectors.toMap()中的错误报告是否已损坏?

List<String> strings = Arrays.asList("3","55","3");
Map<String,Integer> map = strings
    .stream()
    .collect(Collectors.toMap(s ->s, s -> s.length()));
Run Code Online (Sandbox Code Playgroud)

回报

java.lang.IllegalStateException: Duplicate key 1
Run Code Online (Sandbox Code Playgroud)

我希望在哪里复制密钥3

java java-stream

11
推荐指数
1
解决办法
427
查看次数