如何在arraylist中查找重复元素的数量,并将重复元素附加到andorid中的不同textview。
我有3个不同的textview和单个arraylist,其中包含25个具有重复元素的元素 1)arraylist中存在多少重复值 2)重复值的计数应附加到textview。
答案 0 :(得分:0)
Collections.frequency允许您在列表中出现对象。
因为这是一个小数组的另一个选择是对它进行排序然后迭代,在array[i+1] == array[i]
的情况下,增加重复值的数量。
如果这种情况下的元素不是基本类型,请记住重载运算符。
示例实施:
void countOcc(int []arr) {
Set<Integer> uniques = new LinkedHashSet<Integer>();
for(int x : arr) {
uniques.add(x);
}
for(int y : uniques) {
int totalOcc = Collections.frequency(Arrays.asList(arr), y);
//gives total occurences for each unique element in the array
}
}
答案 1 :(得分:0)
遍历arraylist并找到arraylist中每个元素的频率。
使用hashmap提高存储元素频率的性能。
初始值计为零。如果任何元素的频率大于一个增量计数。最后返回计数。
答案 2 :(得分:0)
伪代码:
dup = 0
pos = []
for i from 0 to arr.len -1 do
for c from i + 1 to arr.len -1 do
if pos.has(c) then
break
fi
if i == c then
dup++
pos.add(c)
fi
end
end
休息取决于你。很多优化也可以完成。