除了使用 Java 8 的 Stream API,还可以使用传统的循环方式来在保留现有值的同时统计重复 key 的出现次数。以下为你详细介绍几种实现方法:
1. 使用普通 for 循环
可以通过遍历列表,手动维护两个 Map:一个用于存储每个键对应的首次出现的对象,另一个用于统计每个键的出现次数。
代码解释
- 首先创建了两个
Map:itemMap用于存储每个键对应的首次出现的Item对象,keyCountMap用于统计每个键的出现次数。 - 遍历
itemList,对于每个Item对象,使用getOrDefault方法更新keyCountMap中对应键的计数。 - 检查
itemMap中是否已经存在该键,如果不存在,则将该Item对象存入itemMap中,以此保留现有值。
2. 使用迭代器
迭代器也是一种传统的遍历列表的方式,同样可以结合两个 Map 来实现需求。
代码解释
- 创建了和上面相同的两个
Map。 - 使用迭代器遍历
itemList,在遍历过程中更新keyCountMap和itemMap,逻辑与使用for循环时一致。
这些传统方法的核心思路都是通过遍历列表,手动维护键的计数和保留首次出现的值,虽然代码相对 Stream API 更冗长,但在某些不支持 Java 8 及以上版本的环境中是可行的解决方案。
171万+

被折叠的 条评论
为什么被折叠?



