使用Java查找列表中的重复数字
我正在开发Pi Finder应用程序。我知道有很多关于它的应用程序,但我想自己做。我用Leibniz公式做了,但由于重复的数字,它的运行速度非常慢。我使用列表存储。你能帮我在列表或数组中查找重复的数字吗 范例 {1,2,5,4,7,6,4,7,6,4,7,....}使用Java查找列表中的重复数字,java,pi,Java,Pi,我正在开发Pi Finder应用程序。我知道有很多关于它的应用程序,但我想自己做。我用Leibniz公式做了,但由于重复的数字,它的运行速度非常慢。我使用列表存储。你能帮我在列表或数组中查找重复的数字吗 范例 {1,2,5,4,7,6,4,7,6,4,7,....} 我需要找到4,7,6您可以使用集合作为累加器来找到重复的元素,然后使用集合。频率检查给定的数字是否在列表中出现多次,如下所示: List<Integer> elements = new ArrayList<>
我需要找到4,7,6您可以使用
集合
作为累加器来找到重复的元素,然后使用集合。频率
检查给定的数字是否在列表中出现多次,如下所示:
List<Integer> elements = new ArrayList<>(Arrays.asList(1,2,5,4,7,6,4,7,6,4,7));
Set<Integer> accumulator = new LinkedHashSet<>();
for (Integer number : elements) {
if(Collections.frequency(elements, number) > 1)
accumulator.add(number);
}
LinkedHashSet
在此用于维护插入顺序。如果这不是必需的,那么您可以使用哈希集
或JB Nizet建议的性能更好的解决方案:
List<Integer> elements = new ArrayList<>(Arrays.asList(1,2,5,4,7,6,4,7,6,4,7));
Set<Integer> tempAccumulator = new LinkedHashSet<>();
Set<Integer> resultSet = new LinkedHashSet<>();
for (Integer number : elements) {
if(!tempAccumulator.add(number))
resultSet.add(number);
}
List elements=newarraylist(Arrays.asList(1,2,5,4,7,6,4,7));
Set tempAccumulator=新建LinkedHashSet();
Set resultSet=new LinkedHashSet();
for(整数:元素){
如果(!tempAccumulator.add(数字))
结果集。添加(编号);
}
如果要删除重复项,请使用集合
。措辞不清楚。您是在列表
中搜索重复整数还是在列表
中搜索重复整数?谢谢。这非常有用。我忘记了答案。很抱歉。
List<Integer> elements = new ArrayList<>(Arrays.asList(1,2,5,4,7,6,4,7,6,4,7));
Set<Integer> tempAccumulator = new LinkedHashSet<>();
Set<Integer> resultSet = new LinkedHashSet<>();
for (Integer number : elements) {
if(!tempAccumulator.add(number))
resultSet.add(number);
}