1

我在 java 中有两个相同的数组列表,每个列表都有一个字符串值和一个整数计数。现在我必须将这些数组列表合并为一个,如果值存在,我将增加计数,如果值不存在,我将添加值和计数。

问题是,除了在 for 循环中迭代并检查每个值之外,我是否可以优雅地做到这一点?

4

2 回答 2

3

你不能,有太多的自定义逻辑。迭代、检查和添加——这是最好的方法,并且更具可读性。

从技术上讲,您可以使用Multisetfrom guava ,但是计数由集合本身而不是您自己处理,因此可能需要更多工作。

于 2012-04-12T05:46:23.220 回答
1

问题是,除了在 for 循环中迭代并检查每个值之外,我是否可以优雅地做到这一点?

简短的回答是否定的。

您最好使用 HashMap 作为容器,至少合并操作会执行得更快。无论如何,您都需要一个循环。(因为没有 addAll / putAll 可以更新您的计数)。

于 2012-04-12T05:49:00.127 回答