java生成50个[10,50)之间的整数并统计各数字出现的次数

这篇博客介绍了两种方法在Java中生成50个介于10到50(不包含50)之间的随机整数,并详细说明了如何对这些数字进行统计,以计算每个数字出现的次数。方法一是将生成的数字存入数组,排序后统计;方法二是使用一维数组直接进行计数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一:生成的数字存进数组,排序后统计

import java.util.*;
public class CountTest{
    public static void main(String[] args){
        int ARRAYLENGTH = 50;
        int a[] = new int[ARRAYLENGTH];
        Random ran = new Random();
        // 产生ARRAYLENGTH个10~50之间的整数
        for(int i = 0; i < ARRAYLENGTH; i++){
            a[i] = ran.nextInt(40) + 10;
        }   
        //原数组       
        System.out.println("原数组a = " + Arrays.toString(a)); 
        //对原数组作冒泡排序
        for(int i = 0; i < a.length; i++){  //第i轮排序
            for(int j = 0; j < a.length - i - 1; j++){  //每轮排序进行a.length - i - 1次比较/交换
                if(a[j] > a[j+1]){
                    int tmp = a[j];  //此处不能用传统swap函数,因Java对普通类型的变量是不支持引用传递的
                    a[j] = a[j+1];
                    a[j+1] = tmp;
                }
            }
            //System.out.println("第" + (i+1) + "伦排序后数组a = " + Arrays.toString(a));
        }   
        //排序后的数组
        System.out.println("排序后数组a = " + Arrays.toString(a));
        System.out.println("---------------------------------------");
        //统计每个数字及出现次数   
        for(int i = 0; i < a.length; i++){
            int count = 0;  //计数
            for(int j = 0; j < a.length; j++){
                if(a[i] == a[j]){
                    count++;
                }
            }
            if(i < 49 && a[i] != a[i + 1] && count != 0){
                System.out.println(a[i] + " 出现的次数为: " + count + " 次");
            }
            //此时已是最后一个数字,直接打印出现1次
            if(i == 49){
                System.out.println(a[i] + " 出现的次数为: " + count + " 次");
            }
        }
    }
}

方法二:用单个一维数组实现
代码如下:

//生成50个[10,50)之间的整数并统计各个数字出现的次数
import java.util.*;
public class CountTest2{
    public static void main(String[] args){
        int ARRAYLENGTH = 50;  //生成的数字个数
        Random ran = new Random();
        int a[] = new int[ARRAYLENGTH - 10];  //保存数字出现次数
        System.out.println("生成的数字为: "); 
        // 生成50个随机数并记录出现次数
        for(int i = 0; i < ARRAYLENGTH; i++){
            int num = ran.nextInt(40) + 10;
            System.out.print(num + " ");
            a[num - 10]++;
        }
        System.out.println();       
        // 只需要打印最多40次
        for(int i = 0; i < a.length; i++){
            if(a[i] != 0){
                System.out.println("数字 " + (i +10) + " 出现的次数为 " + a[i] + " 次");
            }       
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值