A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马程序猿_ 初级黑马   /  2019-3-28 14:27  /  1088 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.数组(掌握)
        什么是数组?
                数组就是一个容器,用来装东西的

        数组这个容器的特点?
                一旦初始化之后,数组容器的长度就固定了,不可以再改变了
                数组容器即可存储基本数据类型的数据,也可以存储引用数据类型的数据
                一个数组容器里面所装的所有的东西的数据类型必须是一致的

        怎么创建出来一个数组容器(数组的定义格式)?
                格式一:
                        东西的数据类型[] 容器的名字 = new 东西的数据类型[容器的长度];
                                int[]     arr      = new  int[5];
                                String[]  arr       = new String[5];

                   变形:
                        东西的数据类型 容器的名字[] = new 东西的数据类型[容器的长度];
                                int     arr[]      = new  int[5];

                格式二:
                        东西的数据类型[] 容器的名字 = new 东西的数据类型[]{东西,东西,... ...};
                                int[]    arr      =  new  int[]{1,2,3,4,5};

                格式三:
                        东西的数据类型[] 容器的名字 = {东西,东西,... ...};
                                int[]    arr      =  {1,2,3,4,5};

        怎么向这个数组容器中放东西?
                放东西是通过容器的名字[索引]

                int[] arr = new int[5];
               
                arr[0] = 23;
                arr[1] = 21;

        怎么向这个数组容器中拿东西?
                取东西就是通过容器的名字[索引]

                int i = arr[0];
                System.out.println(i);

                System.out.println(arr[1]);

                注:
                        int[] arr = new int[5];
                        System.out.println(arr); //地址值,是指的是数组容器在内存中存储的位置0x123

                        System.out.println(arr[0]); //0

        数组容器的内存图?
                至少要求能看懂

                能看懂一个数组的内存图
                能看懂二个数组的内存图
                能看懂两个引用(变量),指向同一个数组的内存图

        在我们使用数组的时候最常见到的两个异常?
                数组索引越界异常 ArrayIndexOutOfBoundsException

                        知道这个异常是如何产生的?
                                int[] arr = new int[3];
                                System.out.println(arr[-1]);
                                System.out.println(arr[3]);

                        知道这个异常是如何解决的?


                空指针异常 NullPointerException
        
                        知道这个异常是如何产生的?
                                int[] arr = {1,2,3};
                                arr = null;//二次赋值,赋值一个null空常量
                                System.out.println(arr[0]);

                        知道这个异常是如何解决的?

        练习:
        
        遍历数组容器?
                int[] arr = {1,2,3};
                for(int i = 0; i < array.length; i++) {
                        System.out.println(array[i]);
                }

        获取数组容器中的最值?
                方法一:
                        int[] arr = {1,4,2,3,7,6,5};
                        int max = arr[0];
                        for(int i = 1; i < arr.length; i++) {
                                if(max < arr[i]) {
                                        max = arr[i];
                                }
                        }
                        System.out.println(max);

                方法二:
                        int[] arr = {1,4,2,3,7,6,5};
                        int max = 0;
                        for(int i = 1; i < arr.length; i++) {
                                if(arr[max] < arr[i]) {
                                        max = i;
                                }
                        }
                        System.out.println(arr[max]);

        数组容器中数据的反转?
                        int[] arr = {1,2,3,4,5};
                        for(int i = 0, j = arr.length-1; i < arr.length/2; i++, j--) {
                                int temp = arr[i];
                                arr[i] = arr[j];
                                arr[j] = temp;
                        }

                        for(int i = 0; i < arr.length; i++) {
                                System.out.println(arr[i]);
                        }

-------------------------------------------------------------------------------------------------------------------------------

        数组容器中数据的排序?(冒泡)
                        排序:就是将数组中不规则的数字按照从大到小或者从小到大进行排序
                        冒泡:就是在排序的过程中,方法向气泡似的排序方法

                        int[] arr = {1,4,2,6,3,5};

                        for (int i = 0; i < arr.length; i++) {
                                    System.out.print(arr[i]);
                        }

                        System.out.println();

                               for(int i = 0; i < arr.length - 1; i++) {
                                    for(int j = 0; j < arr.length - 1 - i; j++) {
                                        if(arr[j] > arr[j+1]) {
                                            int temp = arr[j];
                                            arr[j] = arr[j+1];
                                            arr[j+1] = temp;
                                        }
                                    }
                        }

                               for (int i = 0; i < arr.length; i++) {
                                    System.out.print(arr[i]);
                        }

        二维数组?
                什么是二维数组?
                        元素为一维数组的数组就是二维数组

                二维数组的定义格式?

                        格式一:
                                int[][] arr = new int[3][2];

                                3:指的是这个二维数组可以装三个元素(一维数组)
                                2:每一个元素(一维数组)里面可以装2个元素

                        格式二:
                                int[][] arr = new int[3][];
                                arr[0] = new int[5];
                                arr[1] = new int[3];
                                arr[2] = new int[6];
                                
                                3:指的是这个二维数组可以装三个元素(一维数组)

                        格式三:
                                int[][] arr = {{1,2,3},{2,3,4},{6,4}};

                二维数组的遍历?
                                int[][] arr = {{1,2,3},{2,3,4},{6,4}};
                                for(int i = 0; i < arr.length; i++) {
                                        for(int j = 0; j < arr[i].length; j++) {
                                                System.out.println(arr[i][j]);
                                        }
                                }

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马