生成一堆随机数据,定义一个规则,大于50的行成一个数组,小于的形成另外一个数组

这篇博客介绍了如何生成大量随机数据,并根据数值大小将其分为两个数组,其中数值大于50的元素构成一个数组,而数值小于50的元素构成另一个数组。这一过程在数据分析和预处理中常见,用于后续的特定操作或分析。
摘要由CSDN通过智能技术生成
public static void main(String[] args) {
        int[] a=new int[20];
        int[] reult1=new  int[10];
        int[] reult2=new  int[10];
        int idx1=0;//result的下标
        int idx2=0;
        for (int i = 0; i < a.length; i++) {
            a[i]=(int)(Math.random()*100);
            if (a[i]<50){
                if (idx1>=reult1.length){
                   reult1= riseLength(reult1);//扩容后新地址需要按原数组接收
                }
                reult1[idx1]=a[i];
                idx1++;
            }else {
                if (idx2>=reult2.length){
                    reult2=riseLength(reult2);

                }
                reult2[idx2]=a[i];
                idx2++;
            }
        }
        reult1=cutLength(reult1);
        reult2=cutLength(reult2);
        System.out.println(Arrays.toString(a));
        System.out.println(Arrays.toString(reult1));
        System.out.println(Arrays.toString(reult2));
        Collection<String >coll=new ArrayList<>();
    }
    /*
    截取数组空元素,形成新数组,a是要变更的数组,length有效的数据长度
    因为传入的是地址值,被覆盖后的改变不会与前面的地址相同
     */
    public  static int[] cutLength(int[] a){
        for (int i = 0; i < a.length-1; i++) {
            if (a[i]==0&&a[i+1]==0){
                a= Arrays.copyOf(a,i);
               break;
            }
            if (a[a.length-1]==0){
                a=Arrays.copyOf(a,a.length-1);
            }
        }
        return a;
    }
    /*
    数组扩容、要求原本的元素都要在其中,顺序不变,a是要变更的数组,length
    长度每次为原来的一半
     */
    public  static int[] riseLength(int[] a){
        a=Arrays.copyOf(a,a.length*3/2);
                return a;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值