gpt4 book ai didi

java - 显示数组的重复项,例如“数字 x 重复 x 次

转载 作者:行者123 更新时间:2023-12-02 01:28:21 25 4
gpt4 key购买 nike

如何更改代码,以便只能从数组中获取一个数字和重复的次数?

我尝试了经典方法,但它显示“2 重复 2 次”x2 行、“0 重复 3 次”x3 行等,而我只想要一次“2 重复 2 次;0 重复 3 次”等等

import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] array = {2, 0, -12, 0, 23, 45, -4, -5, 2, 23, 0, 9, -7};
Arrays.sort(array);

for(int i=0;i<array.length;i++){
int count = 0;
for(int j=i+1;j<array.length;j++){
if(array[i]==array[j] && i != j){
count = count + 1;
System.out.println("elements" + array[i] + " repeats" + count + " times);
}
}
}
}
}

最佳答案

由于数组已排序,因此只需要一个循环:

public static void main(String[] args) {
int[] array = {2, 0, -12, 0, 23, 45, -4, -5, 2, 23, 0, 9, -7};
Arrays.sort(array);
int index = 0;
int counter = 1;
while (index < array.length - 1) {
if (array[index] == array[index + 1]) {
counter++;
} else {
if (counter > 1) {
System.out.println("element " + array[index] + " repeats " + counter + " times");
}
counter = 1;
}
index++;
}
if (counter > 1) {
System.out.println("element " + array[index] + " repeats " + counter + " times");
}
}

它将每个元素与下一个元素进行比较。如果它们相等,则计数器递增,如果不相等,则计数器大于 1,这意味着存在重复项,并打印以下行:

"element " + array[index] + " repeats " + counter + " times"

如果不大于 1,则索引递增,计数器重置为 1。
与 for 循环相同:

for (index = 0; index < array.length - 1; index++) {
if (array[index] == array[index + 1]) {
counter++;
} else {
if (counter > 1) {
System.out.println("element " + array[index] + " repeats " + counter + " times");
}
counter = 1;
}
}

关于java - 显示数组的重复项,例如“数字 x 重复 x 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56508737/

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