黑马程序员技术交流社区

标题: java基础篇3_数组 [打印本页]

作者: 人间的四月天    时间: 2018-3-23 22:48
标题: java基础篇3_数组

Java 基础 3

1.  数组的定义: 数组是存储同一种数据类型多个元素的容器。

2.  数组的分类:  a .存储基本数据类型,b.存储引用数据类型。

3.  数组的定义格式:   格式1:数据类型[] 数组名;

格式2:数据类型 数组名[];

4.数组的初始化:  a.静态初始化: 初始化时指定每个数组元素的初始值,由系统决定数组长度

                   格式为: 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};

                            简化格式:   数据类型[] 数组名 = {元素1,元素2,...};

                  b.动态初始化: 只指定长度,由系统给出初始化值

                    格式为: 数据类型[] 数组名 = new 数据类型[数组长度];

也可以写为: 数据类型数组名[] = new 数据类型[数组长度];


4.  数组的内存分配:

在介绍内存分配之前先介绍一下内存:

l  栈 存储局部变量

l  堆 存储new出来的东西

l  方法区 (面向对象进阶讲)

l  本地方法区 (和系统相关)

l  寄存器 (给CPU使用)

数组内存分配图:

1. 一个数组(如果显示不出来请在附件查看)

file:///C:/Users/pc/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg

2.两个数组(
如果显示不出来请在附件查看
)

file:///C:/Users/pc/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg

5.  数组的遍历

1.for,  2.while,  3.do…while,   4.增强for循环(foreach)

public classDemo13{

    public static void main(String []args){


                String [ ] str =new String[3];

                    str[0]="张三";

                    str[1]="李四";

                    str[2]="王五";


             // for形式遍历数组

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

                    System.out.println("一维数组:for:"+str);

                }


            // 增强for形式 s遍历所有数组

             for(String s:str){

                           System.out.println("一维数组增强:for:"+s);

                 }


            // do...while形式

              int ii=0;

                do{

                    System.out.println("一维数组:do...while:"+str[ii]);

                    ii++;

                }while(ii<str.length);


            // while形式

             int iii=0;

                while (iii<str.length){


                    System.out.println("一维数组:while:"+str[iii]);

                    iii++;

        }

6.二维数组格式

定义格式

数据类型[][] 数组名;

数据类型 数组名[][];不推荐

数据类型[] 数组名[]; 不推荐

初始化方式

数据类型[][] 变量名 = new 数据类型[m][n];

数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};

简化版格式:数据类型[][]变量名 = {{元素…},{元素…},{元素…}};


7.二维数组的遍历

        int[][] in = new int[2][3];

              in[0][0]=1;

              in[0][1]=2;

              in[0][2]=3;

              in[1][0]=4;

              in[1][1]=5;

              in[1][2]=6;


        //  for形式

        for(int i1=0;i1<in.length;i1++){

            for(intj=0;j<in[i1].length;j++){

                System.out.println("二维数组:for:"+in[i1][j]);

            }

          }


       //  增强  for形式

        for(int[] i2:in){

            for(int k:i2){

            System.out.println("二维数组:增强for:"+k);

            }

        }


        // while形式

        int i3=0;

        while(i3<in.length){

            for(intj1=0;j1<in[i3].length;j1++){

                System.out.println("二维数组:while:"+in[i3][j1]);

            }

            i3++;

        }


       // do...while形式

        int i4=0;

        do{

            for(intj2=0;j2<in[i4].length;j2++){

                System.out.println("二维数组:do...while:"+in[i4][j2]);

            }

            i4++;

        }while(i4<in.length);



/*       int[][]in1={{1,2,3},{4},{5,6},{7,8,9,10}};

            for(int [] k:in1){                    //增强for

                for(int l:k){

                    System.out.println(l);

                }

              }

            for(inti=0;i<in1.length;i++){    // for 形式

                for(intj=0;j<in1.length;j++){

                    System.out.println(in1[j]);

                }

              }

              int i=0;                         //  while形式

                 while(i<in1.length){

                    int j=0;

                    while(j<in1.length){

                        System.out.println(in1[j]);

                        j++;

                    }

                     i++;

                 }

                int i=0;                       //  do...while形式

                 do{

                    int j=0;

                    do{

                       System.out.println(in1[j]);

                        j++;

                    }while(j<in1.length);

                     i++;

                }while(i<in1.length);


1.jpg (68.42 KB, 下载次数: 5)

1.jpg

2..jpg (96.61 KB, 下载次数: 5)

2..jpg





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2