Java一维数组的初始化训练

数组我们已经学了三天了,但是我发现在做题目时对于该用静态初始化还是动态初始化有点迷茫,所以做了一下强化训练。

我们知道,动态初始化是指定数组的长度,数组内容则由系统自动生成,是用在不清楚储存的数据的情况下。静态初始化是指定数组的数值内容,数组长度由系统自动生成,是用在知道要储存的为多少时的情况下。

例如这道题:

随机生成十个取值范围在1~100的数,并求取他们的平均数

import java.util.*;
public class sg2 {
    public static void main(String[] args) {
        int [] arr= new int [10];
        int count=0;
        int sum=0;
        int avg=0;
        for(int a=0;a<10;a++){//运用for循环生成10个随机数
            Random r=new Random();
            int number =r.nextInt(100)+1;
            System.out.println(number);
            //并将这些随机数存入数组
            arr[a]=number;
            sum=sum+arr[a];
            avg=sum/12;

        }
      
        System.out.println(avg);
    }
}

这道题由于要储存的数据是随机生成的数,我们事先不知道,所以应该在生成随机数的循环前用动态初始化定义一个长度为10的数组。

2.将数组{1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}中所有非0的数存进一个新的数组,打印出新的数组

import java.util.*;
public class exec1 {
    public static void main(String[] args) {
        int arr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
        int n=0;
        for(int i=0;i<arr.length;i++){
            if(arr[i]!=0){
                n++;
            }
        }
        int arr1[]=new int[n];
        n=0;
        for(int i=0;i<arr.length;i++){
            if(arr[i]!=0){
                arr1[n]=arr[i];
                n++;
            }
        }
        for(int i=0;i<arr1.length;i++){
            System.out.println(arr1[i]);
        }
    }
}

因为题目中已经给出了数据,所以第一个数组用的是静态初始化,而要新的数组时,我们还没有算出到底有哪些非0数,只能用n来假设非0数的数量,所以只能用动态初始化来定义新的数组。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值