List 转 Map, 齐活!(二)

测试代码List 转 Map, 齐活!(二)

使用 Apache Commons 库

除了 Guava ,我们还可以使用常用的 Apache Commons 库来进行转换。

我们现在Maven 中引入 commons 的依赖库

List 转 Map, 齐活!(二)


接下来我们使用 MapUtils.populateMap() 方法进行转换。List 转 Map, 齐活!(二)

测试代码

List 转 Map, 齐活!(二)


Map Key 的冲突问题

由于List中可以存在多个相同的实例, 但是map却不行, 那我们来看看Map要怎么处理呢?

首先,我们初始化一个有重复对象的 ListList 转 Map, 齐活!(二)

从代码中可以看到, 牛 和 羊 对象的id 都是 4 。

Apache Commons 和 Java 8 之前的代码是一样的,相同id的Map 在put 的时候会进行覆盖。


List 转 Map, 齐活!(二)

而 Java 8 的 Collectors.toMap() 和 Guava 的 MapUtils.populateMap() 分别抛出 IllegalStateException 和 IllegalArgumentException。

List 转 Map, 齐活!(二)

总结

在这篇文章中,指北君给大家分享了各种List 转 Map 的方法, 给出了使用 Java 原生API 以及一些流行的第三方库的例子。


上一篇:难缠的跨域问题,终于弄清楚了(下)


下一篇:List 转 Map, 齐活!(一)