gpt4 book ai didi

java - 在数组中查找重复项,用java中重复出现次数最多的数组填充第二个数组

转载 作者:行者123 更新时间:2023-12-02 00:22:20 28 4
gpt4 key购买 nike

这是我的第一篇文章,我对编码还很陌生。我正在用 5 个随机整数填充一个数组。然后,我想迭代该数组并查找任何重复项,将最常出现的重复整数存储在新数组中。因此,本质上,如果随机生成整数是 [6,2,2,1,1],我希望第二种方法应该循环并创建一个包含两个整数的新数组,两个整数的值均为 2 或 [2,2] .

private int min = 1;
private int max = 6;

private int[] randArray = new int[5];
private int num1;
private int num2;
private int num3;
private int num4;
private int num5;
private int num6;
private int[] maxFreqArray = new int[6];

public int[] fillRandArray() {
for (int i = 0; i < randArray.length; i++) {
randArray[i] = random.nextInt(max) + min;
}
return randArray;
}

public int[] fillMaxFreqArray() {
for (int i = 1; i < maxFreqArray.length; i++) {
if (randArray[i] == 1) {
maxFreqArray[i] = num1++;
} else if (randArray[i] == 2) {
maxFreqArray[i] = num2++;
} else if (randArray[i] == 3) {
maxFreqArray[i] = num3++;
} else if (randArray[i] == 4) {
maxFreqArray[i] = num4++;
} else if (randArray[i] == 5) {
maxFreqArray[i] = num5++;
} else if (randArray[i] == 6) {
maxFreqArray[i] = num6++;
}

}

return maxFreqArray;
}

我的问题有两个,首先,我似乎只用 5 个整数填充 maxFreqArray,因为当我打印数组时,我得到 [0, 2, 1, 1, 3] 的随机值或类似的值,但从来没有更大的值比 3. 有什么想法吗?

最佳答案

给你,

public static void main(String[] args) {

int[] a = { 6, 2, 2, 1, 1 ,1 };

Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (int i = 0; i < a.length; i++) {
if (map.get(a[i]) != null) {
map.put(a[i], map.get(a[i]) + 1);
} else {
map.put(a[i], 1);
}
}

int maxvalue = 0, respectiveKey = 0;
for (Entry<Integer, Integer> entry : map.entrySet()) {
if (entry.getValue() >= maxvalue) {
maxvalue = entry.getValue();
respectiveKey = entry.getKey();
}
}
int[] newarra = new int[maxvalue];
for (int i = 0; i < maxvalue; i++) {
newarra[i] = respectiveKey;
}

// return newarra;

}

这是java 5中的解决方案,如果您熟悉java 7和8以上,您可以使用流操作来实现相同的效果。

希望这对您有帮助。

关于java - 在数组中查找重复项,用java中重复出现次数最多的数组填充第二个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58073031/

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