【发布时间】:2011-04-27 04:15:38
【问题描述】:
我找到了一个使用以下方法添加唯一项目的有效代码:
int[] values = { -5, -3, -1, 0, 3, 6 };
List<Integer> list=new ArrayList<Integer>();
for(int val : values)
{
if(!list.contains(val))
list.add(val);
}
我可以使用 HashSet 而不是 ArrayList 来完成相同的工作。这会帮助我不用担心检查列表中是否已经存在该值。为什么使用 Hashset 不是一种有效的方法?
【问题讨论】:
-
A
List从来没有打算/旨在保持独特的价值,所以我看不出你的问题的重点。如果您想保持独特的价值,请继续使用Set。为此目的使用正确的数据结构。 -
一个 ArrayList 可以很好地保存唯一值,它只是不能确保唯一性。而且它更适合按位置查找而不是
contains(它必须扫描列表)。我们需要更多关于他想要达到的目标的背景信息。