数组定义与细节

(一)定义

(1)声明,2种:int[ ] arr 或  int  arr[ ]

(2)开辟空间,动态分配方式和静态分配方式:

动态分配方式:不能确定元素的具体值是多少,先开辟空间大小,再逐个赋值

静态分配方式:确定元素的值是多少,在声明的同时直接赋值

        //动态
        int[] arr1 = new int[3];
        for(int i=0;i<arr1.length;i++){
            arr1[i] = i;
        }
        //静态
        int[] arr2 = {1,2,3};

(二)注意细节

1.数组的元素可以是任意类型,包括基本类型和引用类型,但是不能混用

2.数组中的元素满足自动转型原则,比如double类型的数组中可以存储int整数,这是因为整数已经自动转成double,但是int类型的数组中不能存放string类型或者double类型,因为不能自动转换(编译不通过)

3.数组创建后都有默认值,布尔类型默认是false,引用类型默认是null,char类型默认是\u0000(这里的\u表示十六进制的意思),其他的类型都默认对应的0

4.数组越界时实在运行的时候检查的,在编译的时候不会检查

(三)练习

定义练习!!!

下列数组定义正确的有:

A.String strs[] = {'a','b','c'};//错误,因为是字符串数组,不能存储字符

B.String[] strs = {"a","b","c"};//正确

C.String[] strs = new String{"a","b","c"}//错误,静态和动态混用了

D.String strs[] = new String[]{"a","b","c"}//!!!正确

E.String[] strs = new String[3]{"a","b","c"}//错误,静态和动态混用了

//1.在数组中存放26个大写英文字母并打印出来
//1.在数组中存放26个大写英文字母并打印出来
        char[] chars = new char[26];
        for(int i=0;i<chars.length;i++){
            chars[i] = (char)('A'+i);//这里的('A'+i)是int类型,要进行强制类型转换
        }
        for(int i=0;i<chars.length;i++){
            System.out.print(chars[i]+" ");
        }
//2.找出数中的最大值
 //2.找出数中的最大值
        int[] arr4 = {5,3,1,6};
        int max = arr4[0];
        int maxIndex = 0;
        for(int i=0;i<arr4.length;i++){
            if(max<arr4[i]){
                max = arr4[i];
                maxIndex = i;
            }
        }
        System.out.print("max="+max+" index= "+maxIndex);
//3.求和,求平均值
double[] arr5 = {2.4,3.5,23.3,4};
        double sum = 0;
        for(int i=0;i<arr5.length;i++){
            sum+=arr5[i];
        }
        double avg = sum/ arr5.length;
        System.out.println("sum="+sum+" avg="+avg);

求解第3题时发现下面小细节:

//整除运算,在两端都是整数时,最后的结果是向下取整,如果接收的变量为整型则结果为整型,如果为浮点型,则转为浮点型
        // 若有一个为浮点数,则结果为浮点数,并且不能用int保存
        System.out.println(2/3);//0
        System.out.println(2/3.0);//0.6666666666666666

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值