之前有写过一个使用Guava的Maps.uniqueIndex快速转换List到Map的文章,今天被小伙伴说为啥不用java8的stream来做转换。

java8方式

1
Map<Integer, Prize> map = datas.stream().collect(Collectors.toMap(Prize::getUsed, a -> a, (k1,k2)->k1));

结论

还是Guava用起来简单,当然Guava方式如果key有重复就会报错了,不如java8的容错性好一些。

附送一个Stream分组List的代码

1
Map<Integer, List<Prize>> group = datas.stream().collect(Collectors.groupingBy(Prize::getUsed));