gpt4 book ai didi

java - 获取列表中重复的元素

转载 作者:太空宇宙 更新时间:2023-11-04 07:44:14 25 4
gpt4 key购买 nike

我需要从数据库中获取重复超过3次的元素。这是我的代码,我是如何做到这一点的:

    public static ArrayList<Integer> getPrice(List<Integer> list) {
ArrayList<Integer> result = new ArrayList<Integer>();
int val;
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
for (int i = 0; i < list.size(); i++) {
val = list.get(i);
if (!map.containsKey(val)) {
map.put(val, 1);
} else {
map.put(val, map.get(val) + 1);
}
}
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
if (entry.getValue() > 3) {
result.add(entry.getKey());
}
}
return result;
}

这是好的、有效的方法吗?

最佳答案

如果你在数据库中获取列表,我会建议你使用 SQL。但如果你想在 java 中做到这一点,你可以这样做:

public static List<Integer> getPrice(List<Integer> list) {
SetUniqueList<Integer> result = new SetUniqueList<Integer>();
for (Integer number : list) {
int occurrences = Collections.frequency(list, number);
if (occurrences > 3) {
result.add(number);
}
}
return result;
}

或者没有org.apache.commons.collections.list:

public static List<Integer> getPrice(List<Integer> list) {
Set<Integer> aSet = new HashSet<Integer>();
for (Integer number : list) {
if (Collections.frequency(list, number) > 3) {
aSet.add(number);
}
}
List<Integer> result = new ArrayList<Integer>();
result.addAll(aSet);
return result;
}

关于java - 获取列表中重复的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15585708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com