基础知识(二)之数组解析

来源:互联网 发布:python 傅里叶变换 编辑:程序博客网 时间:2024/06/09 21:05

-------android培训、java培训、期待与您交流! ----------

数组(Array

什么是数组,相同类型数据的集合就叫做数组。数组是一个对象。那么如何定义一个数组呢?

第一种形式:

    type[]变量名 =new type[数组中元素的个数(长度)]

例如我们可以按照下列方式定义长度为10的数组:

int[] a=new int[10];或者int a[]=new int[10];

例如看以下代码:

publicstaticvoid main(String[] args) {

        int[] i =newint[4];

        i[0]=0;

        i[1]=1;

        i[2]=2;

      i[3]=3;

        System.out.println(i[2]);

  }

对于数组,我们要知道数组的索引是从0开始的,对于数组来说,最大的索引=数组的长度-1

 

第二种形式:

     type[] a={元素1,元素2,元素3………}

例如: publicstaticvoid main(String[] args) {

     int[] i={1,2,3,4};

     System.out.println(i[2]);

 

第三种形式:type[] a=new type[]{元素1,元素2,元素3……}

         错误写法:int[] i=newint[2]{1,2,3};

     例如:

publicstaticvoid main(String[] args) {

       int[] i=int[]{1,2,3,4};

       System.out.println(i[2]);

 

数组小练习:长度是100的数组,给每个数组赋上1-100

 第一种写法:

int[] a=newint[100];

      for(int i=0;i<a.length;i++){

             for(int j=0;j<100;j++){

                  a[i]=j+1;

                System.out.println(a[i]);

        }

     }

第二种写法(更简便):

      int[] a=newint[100];

     for(int i=0;i<a.length;i++){

          a[i]=i+1;

          System.out.println(a[i]);

    }

 

从以上练习中,我们看到一个length属性,记住在java中的每个数组都有一个名为length的属性,它表示数组的长度。length的属性是public,final,int的,数组长度一旦确定,就无法改变大小。

 

数组误区:数组内容的对比不能用==或者equals()方法。如:

     int a[]={1,2,3,4};

     int b[]={1,2,3,4};

     System.out.println(a==b);//false

     System.out.println(a.equals(b));//fasle

 

对于int[] a=new int[10],我们分析下,其中a是一个引用,它指向了生成的数组对象的首地址a[0],数组中的每个元素都是int类型,其中仅存放数据值本身

如图:

那么,我们对不是原生数据类型创建数组是什么情况?如下:

publicclassArrayTest {

  publicstaticvoid main(String[] args) {

     Person[]p=newPerson[3];//这里没有创建对象,存得只是引用,创建内存且为null

     p[0]=new Person(10);//真正的创建对象

     p[1]=new Person(20);

     p[2]=new Person(30);

     for(int i=0;i<p.length;i++){

         System.out.println(p[i].age);//打印102030

     }

  }

}

class Person{

  intage;

  public Person(int age) {

     this.age=age;

  }

}

以上代码如图所示:

二维数组

什么是二维数组呢?二维数组是一种平面的二维结构,本质上是数组的数组。二维数组的定义方式:

type[][]变量名=newtype[int数字1][int数字2];

数字1和数字2分别表示数组中的行与列;

 

小练习:我们对int[2][3]数组里面,每个元素都是以2的倍数进行赋值。

publicstaticvoid main(String[] args) {

     int[][] a=newint[2][3];

     int m=0;

      for(inti=0;i<2;i++){

         for(intj=0;j<3;j++){

            m++;

           a[i][j]=2*m;

           System.out.println(a[i][j]);

        }

      }

  }

那么我们怎么定义不整齐的数组呢?我们如何对这个数组进行定义,如图:

那么对于不整齐的数组我们定义如下:

  publicstaticvoid main(String[] args) {

     int a[][] =newint[3][];

     a[0]=newint[2];

     a[1]=newint[3];

     a[2]=newint[1];

  }

 

所以我们对二维数组有第二种定义方式:

type[][] a=new type[][]{{1,2,3…},{1,2,3…},{1,2,3…}….}

 

那么我们对以上定义的数组,我们怎么去取得每个元素的值呢?见如下代码.

publicstaticvoidmain(String[] args) {

     int[][] a =newint[][]{ { 1,2, 3 }, { 4 },{ 5, 6, 7, 8 }};

     for(int i=0;i<a.length;i++){

         for(intj=0;j<a[i].length;j++){

            System.out.print(a[i][j]+””);//为了好的显示果

         }

     }System.out.println();//换行,为了好的显示结果

  }

 

三维数组

既然有二维数组那么我们也有三维数组,三维数组形式:

type[][][]变量名=new type[][][];