JavaSE第五章、数组


JavaSE第五章、数组

一、数组

1.数组的定义

(1)动态初始化

第一种: int[] a=new int[5];

第二种: int a[]=new int[5];

第三种: int a[];或int[] a; //先定义

? a=new int[5]; //再初始化

(2)静态初始化
int a[]={1,2,3,4,5};

注意事项:

  • 数组中的元素可以是任何数据类型,但不能混用。

  • 数组创建后,若没有赋值,则有默认值:

? int\short\byte\long为0;

? float\double为0.0;

? char为\u0000;

? boolean为false;

? String为null。

  • ??数组的下标从0开始。

  • 数组是引用类型,数组型数据是对象(object)。

2.数组赋值机制

  • 基本数据类型赋值方式为值传递。

  • 数组在默认情况下是引用传递,赋的是地址。

3.数组的扩容

Scanner myScanner = new Scanner(System.in);
int[] arr={1,2,3};
do{
int[] arrNew = new int[arr.length+1];
    for(int i=0;i

二、二维数组

1.二维数组的定义

//静态初始化
int[][] arr={
    {0,0,0},
    {0,0,1},
    {1,2,0},
}

//动态初始化一
int arr[][];
arr = new int [5][5];

//动态初始化二
int a[][] = new int [5][5];

//动态初始化三——列数不确定
/*Java二维数组允许每个一维数组的个数不同,即列数不确定。*/
int[][] arr = new int[3][];
for(int i=0;i

注意事项:

  • 二维数组的每个元素是一维数组。
  • 访问第(i+1)个一维数组的第(j+1)个值:arr [i][j]。
  • 二维数组的声明方式还可以为:int[] y[]

2.杨辉三角

int[][] arr=new int[10][];
        for(int i=0;i1 && j!=0 && j!=arr[i].length-1) 
                    arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
                else 
                    arr[i][j]=1;
            }
        }

        for(int i=0;i