• 随机输入几个数,输出重复的数字和重复的次数


    1.用数组来输出重复的数字(不含重复的次数)

     1 public class Demo1 {
     2     public static int[] getArr(){
     3         Scanner sc = new Scanner(System.in);
     4         System.out.println("请输入数字的个数:");
     5         int sum = sc.nextInt();
     6         int[] arr = new int[sum];
     7         for(int i=0;i<arr.length;i++){
     8             System.out.println("请输入第"+(i+1)+"数:");
     9             arr[i] = sc.nextInt();
    10         }
    11         return arr;
    12     }
    13     public static int[] repeat(){
    14         int[] arr = getArr();
    15         Arrays.sort(arr); //将数组的中元素从小到大进行排序。
    16         int[] arr2 = {}; //再创建一个空数组,目的是用它来存储筛选出的重复数字
    17         for(int i=0;i<arr.length;i++){
    18             int count = 0; //用来记录数字重复的次数
    19             for(int j=0;j<arr.length;j++){
    20                 if(arr[i] == arr[j]){
    21                     count++;
    22                 }
    23             }
    24             if(count>1){ //arr[i]这个元素是重复的
    25                 //知识点:Arrays的copyOf()方法传回的数组是新的数组对象,改变传回数组中的元素值,不会影响原来的数组。
    26                 //copyOf()的第二个自变量指定要建立的新数组长度,如果新数组的长度超过原数组的长度,则保留数组默认值。
    27                 arr2 = Arrays.copyOf(arr2,arr2.length+1);
    28                 //将arr[i]这个元素存储到arr2数组的末尾
    29                 arr2[arr2.length-1] = arr[i];
    30                 i=i+count-1; //这是算法的灵魂,好好思考一下。
    31             }
    32         }
    33         return arr2;
    34     }
    35     public static void main(String[] args) {
    36         int[] arr2 = repeat();
    37         System.out.println("重复元素:");
    38         for (int a : arr2) {
    39             System.out.print(a+" ");
    40         }
    41     }
    42 }

     2.用List集合输出重复元素

    public class Demo2 {
        public static int[] getArr(){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入数字的个数:");
            int sum = sc.nextInt();
            int[] arr = new int[sum];
            for(int i=0;i<arr.length;i++){
                System.out.println("请输入第"+(i+1)+"数:");
                arr[i] = sc.nextInt();
            }
            return arr;
        }
        public static List<Integer> repeat(){
            int[] arr = getArr();
            Arrays.sort(arr); 
            List<Integer> list = new ArrayList<>(); 
            for(int i=0;i<arr.length;i++){
                int count = 0; //用来记录数字重复的次
                for(int j=0;j<arr.length;j++){
                    if(arr[i] == arr[j]){
                        count++;
                    }
                }
                if(count>1){ 
                    list.add(arr[i]);
                    i=i+count-1; 
                }
            }
            return list;
        }
        public static void main(String[] args) {
            List<Integer> list = repeat();
            System.out.println("重复元素:");
            for (Integer a : list) {
                System.out.print(a+" ");
            }
        }
    }

    结果:

    3.用Map输出重复的数字和重复的次数

    public class Demo {
        public static int[] getArr(){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入数字的个数:");
            int sum = sc.nextInt();
            int[] arr = new int[sum];
            for(int i=0;i<arr.length;i++){
                System.out.println("请输入第"+(i+1)+"数:");
                arr[i] = sc.nextInt();
            }
            return arr;
        }
        public static Map<Integer,Integer> repeat(){
            int[] arr = getArr();
            Map<Integer,Integer> map = new HashMap<>(); //集合是用来存储重复数字和重复的次数
            Arrays.sort(arr); //将数组的中元素从小到大进行排序。
            for(int i=0;i<arr.length;i++){
                int count = 0; //用来记录数字重复的次数
                for(int j=0;j<arr.length;j++){
                    if(arr[i] == arr[j]){
                        count++;
                    }
                }
                if(count>1){ //arr[i]这个元素是重复的
                    map.put(arr[i],count); //存储重复数字和重复的次数
                    i=i+count-1;
                }
            }
            return map;
        }
        public static void main(String[] args) {
            Map<Integer, Integer> map = repeat();
            System.out.println("-------------------------");
            for (Integer key : map.keySet()) {
                System.out.println("重复元素:"+key+" 次数:"+map.get(key));
            }
        }
    }

    结果:

  • 相关阅读:
    AI人脸识别SDK接入 — 参数优化篇(虹软)
    虹软人脸识别ArcFace2.0 Android SDK使用教程
    虹软免费人脸识别SDK注册指南
    python3+arcface2.0 离线人脸识别 demo
    Android利用RecyclerView实现列表倒计时效果
    将博客搬至CSDN
    Retrofit动态设置支持JSON和XML格式转换工厂
    Android 简单统计文本文件字符数、单词数、行数Demo
    [雨]个人项目设计分析
    Android:随机生成算数四则运算简单demo(随机生成2~4组数字,进行加减乘除运算)
  • 原文地址:https://www.cnblogs.com/yclss123/p/13407109.html
Copyright © 2020-2023  润新知