1. 给定了一个包含重复元素的数组(附题后),请编写程序找出数组中那些元素有重复, 并记录其重复了几次: public class ArrayExample { public static void

1. 给定了一个包含重复元素的数组(附题后),请编写程序找出数组中那些元素有重复, 并记录其重复了几次: public class ArrayExample { public static void main(String[] args) { int array={1,6,3,6,7,9,8,6,7,8,8,0,4,5,2,9}; 【补充代码】 }

package com.temp;

import java.util.HashMap;
import java.util.HashSet;

/**
 * @Author lanxiaofang
 * @email [email protected]
 * @date 2020/09/21 8:15
 */
public class ElemRepetition {
    public static void main(String[] args) {

        Integer[] array={1,6,3,6,7,9,8,6,7,8,8,0,4,5,2,9};
        HashSet<Integer> hash_set = new HashSet<>();

        //将数组中的值放入HashSet去重
        for (Integer s : array){
            hash_set.add(s);
        }

        // 将HashSet转为数组Array
        Integer[] array_ = hash_set.toArray(new Integer[hash_set.size()]);

        System.out.println("---- array_.length "+array_.length+" array.length "+array.length);

        //使用HashMap来存储对应的值,以及对应的值出现的次数
        HashMap<Integer, Integer> hash_map = new HashMap<>();

        for(Integer i = 0; i < array_.length; i++){
            int count = 0;

            for(Integer j = 0; j < array.length; j++){
                if(array_[i] == array[j])
                    count++;
                hash_map.put(array_[i], count);
            }

        }

        for(int i=0; i< array_.length; i++){
            System.out.println(array_[i]+" --  "+hash_map.get(array_[i]));
        }

    }
}

结果如下: 

猜你喜欢

转载自blog.csdn.net/c_lanxiaofang/article/details/108702945