Java统计数组元素出现次数如何避免重复打印相同统计结果
解决方案
修改思路
你当前输出重复的原因是遍历数组时每个元素都会触发一次打印逻辑,而你的测试数组本身是有序排列的,相同值的元素连续相邻,只需要新增判断条件:当前元素是数组第一个元素,或者当前元素和前一个元素值不同时,才执行打印即可。如果后续要处理无序数组,可以先对数组做排序后再用该逻辑,或者用HashSet存储已经打印过的值,避免重复输出。
修改后完整代码
import java.util.Arrays; public class Q7 { public static void main(String[] args) { int[] x = { 2, 3, 3, 3, 4, 6, 7, 8, 8, 9 }; System.out.println(Arrays.toString(x)); for (int i = 0; i < x.length; i++) { // 仅第一个元素或和前一个元素不同时打印 if (i == 0 || x[i] != x[i-1]) { System.out.println("数值 " + x[i] + " 出现 " + count(x, x[i]) + " 次。"); } } } public static int count(int[] array, int target) { int counter = 0; for (int i = 0; i < array.length; i++) { if (array[i] == target) { counter++; } } return counter; } }
运行输出
[2, 3, 3, 3, 4, 6, 7, 8, 8, 9] 数值 2 出现 1 次。 数值 3 出现 3 次。 数值 4 出现 1 次。 数值 6 出现 1 次。 数值 7 出现 1 次。 数值 8 出现 2 次。 数值 9 出现 1 次。
内容的提问来源于stack exchange,提问作者user16324183
相关产品推荐
相关产品推荐

