A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题,今日新学,或许对于群里的大神来说很简单,对于小白的我,确实一座小山峰了
package com.class_Test;

/**
* 需求:有如下数组int[ ] arr = {32,11,77,22,11,77};
* 写代码, 生成一个新的数组,这个新的数组,只包含重复的元素极其个数,
* 也就是{“11=2”, “77=2”},也就是说,11有2个,77有2个
*
*思路:
*1、新建一个数组,存放重复计数
*2、使用if判断重复个数,并记数(要求没遍历一个数初始化记数变量)
*3、将记数同步导入新建的数组里面
*4,、判断新建数组元素大于1的则为重复的个数
*5、两个数组同步导出,
*
*
*/
public class Test4 {
        public static void main(String[] args) {
                int[] arr = { 32, 11, 77, 22, 20, 11, 77, 77, 11, 32 };
                int[] temp = new int[arr.length]; //新建临时数组,用于存放重复记数
                System.out.print("{");
                for (int i = 0; i < arr.length; i++) {
                        int b = 1;
                        for (int a = i + 1; a < arr.length; a++) {
                                if (arr[i] == arr[a]) { // 遍历比较重复数为true
                                        arr[a] = 0;// 当为重复的数时,赋值0
                                        b++;// 重复记数
                                }
                        }
                        if (arr[i] != 0) { // 判断当遍历时 不等于0时为true
                                temp[i] = b;// 将重复的元素的记数同步写入新的数组
                        }
                        if (temp[i] > 1) { // 判断如果等于0则不输出
                                String num = arr[i] + "=" + (temp[i]);
                                System.out.print(num+",");
                        }
                }
                System.out.println("}");
        }
}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马