【发布时间】:2013-06-25 22:30:14
【问题描述】:
例如,我的列表包含 {4, 6, 6, 7, 7, 8},我想要最终结果 = {6, 6, 7, 7}
一种方法是遍历列表并消除唯一值(本例中为 4、8)。
除了遍历 list 之外,还有其他有效的方法吗?我问这个问题是因为我正在工作的列表非常大? 我的代码是
List<Long> duplicate = new ArrayList();
for (int i = 0; i < list.size(); i++) {
Long item = (Long) list.get(i);
if (!duplicate.contains(item)) {
duplicate.add(item);
}
}
【问题讨论】:
-
如果要查找所有重复项,您必须遍历整个列表,至少一次。如果您必须比较列表中的每个值以使其更有效,则没有“更有效”的方法可以使用列表执行此操作。解决方案在于创建列表。
-
您至少需要一个循环。如果您想要一个更有效的代码(尽管并非在所有情况下都保证),您可以尝试先订购列表,然后检查“邻居”是否不同(如果是,您有一个唯一的项目,只需将其从列表中删除)
-
如果您不想循环,您可以随时打印出列表并计算重复项。
-
您知道您的代码没有按照您的问题要求执行吗?
标签: java list duplicates unique