昨天写好的数组总结结果没有保存丢失掉了,现在重新写一下。
数组是用来存储数据的,是相同类型数据的组合,数组分为一维数组和多维数组,这里多维数组主要以二维数组为例。
一、数组的初始化
1.维数组初始化分为静态和动态初试化两张。静态初始化:int[] arr=new int[ ]{1,2,3};
动态初始化:int[] arr=new int[3]; (一定要指明数组长度)arr[0]=2;arr[1]=4;arr[2]=89;
2.维初始化和一维初始化原理相同。静态初始化:int[][] arrs=new int[][]{{1,32},{3,45},{45,567}};
动态初始化:int[][] arrs=new int[3][];(一定要指明数组长度);
arrs[0]=13;arrs[1]=33;(再进行一维数组初始化赋值)
注意:这样写是错误的!(String[][] strs=new String[3][2];strs[0][1]=2;这样写是错误的,因为没有对一维数组进行初始化规定其长度,所以没法引用数组)
3.数组长度:arr.length;arrs.length;arrs[i].length.
4.数组初始化默认的值
1)对于byte short int long,数组初始化值为0;
2)对于float double,数组值初始化值为0.0;
3)对于char字符而言,数组初始化默认值为空格;
4)对于boolean而言,数组初始化默认值为false;
5)对于引用型数据如数组、类、接口而言,数组初始化默认值为null;
二、数组的内存结构
1.一维数组内存结构图
2二维数组内存结构图
还有几种异常,数组下标越界异常和空指针异常,使用时多加注意。
在这里还涉及到了数组的一些算法,如冒泡法等。在这里不多说。
class Shuzu4 { public static void main(String[] args) { int[] arr=new int[]{12,34,55,22,54,3,2,2,-9,0,-89}; //最大值 int max=arr[0]; for(int i=0;i<arr.length;i++){ if(max<=arr[i]){ max=arr[i]; } } System.out.println("最大值是"+max); //最小值 int min=arr[0]; for(int i=0;i<arr.length;i++){ if(min>=arr[i]){ min=arr[i]; } } System.out.println("最小值是"+min); //总和 int sum=0; for(int i=0;i<arr.length;i++){ sum+=arr[i]; } System.out.println("总和是"+sum); //平均数 double ave=0; ave=sum/arr.length; System.out.println("平均数是"+ave); //复制 int[] arr1=new int[arr.length]; for(int i=0;i<arr1.length;i++){ arr1[i]=arr[i]; } //数组中元素反转 for(int i=0;i<arr.length/2;i++){ int temp=arr[i]; arr[i]=arr[arr.length-i-1]; arr[arr.length-i-1]=temp; } //或 for(int x=0,y=arr.length-1;x<y;x++,y--){ int temp=arr[x]; arr[x]=arr[y]; arr[y]=temp; } //遍历 for(int i=0;i<arr1.length;i++){ System.out.println(arr1[i]); } } }