17下标越界及小结,数组的使用,二维数组

Java数组02--下标越界及小结,数组的使用,二维数组

[TOC]

下标越界及小结

数组地四个基本特点

  • 其长度是确定的,数组一旦被创建,它的大小就是不可以改变地。
  • 其元素必须是相同类型,不允许出现混合类型。
  • 数组中的元素可以是任何数据类型,包括基本类型引用类型
  • 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。
  • 数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的

数组边界

  • 下标的合法区间:[0,length-1],如果越界就会报错;

    public static void main(String[] args){
        int[] a=new int[2];
        System.out.println(a[2]);
    }
    
    • ArrayIndexOutOfBoundsException:数组下标越界异常!
  • 小结:

    • 数组是相同数据类型(数据类型可以为任意类型)的有序集合
    • 数组也是对象。数组元素相当于对象的成员变量
    • 数组长度是确定的,不可变的。如果越界,则报:ArrayIndexOutOfBounds

数组的使用

  • For-Each 循环

    public class ArrayDemo04 {
        public static void main(String[] args) {
            int[] arrays={1,2,3,4,5};
    
            //JDK1.5,没有下标
            for (int array : arrays) {
                System.out.println(array);
            }
        }
    }
    
  • 数组作方法入参

  • 数组作返回值

    public class ArrayDemo04 {
        public static void main(String[] args) {
            int[] arrays={1,2,3,4,5};
            int[] reverse =reverse(arrays);
            printArray(reverse);
        }
         //打印数组元素
        public static void printArray(int[] arrays){
            for (int i = 0; i < arrays.length; i++) {
                System.out.print(arrays[i]+" ");
            }
        }
        //反转数组
        public static int[] reverse(int[] arrays){
            int[] result =new int[arrays.length];
    
            //反转操作
            for (int i = 0,j=result.length-1; i < arrays.length; i++,j--) {
                result[j]=arrays[i];
                //result[]=arrays[i];
            }
            return result;
        }
    }
    

    代码运行结果:

    image-20211207194544353

多维数组

  • 多维数组可以看成是数组的的数组,比如二维数组就是一个特殊的一组数组,其每一个元素都是一个一维数组。

    image-20211207195212972

  • 二维数组

    int a[][]=new int[2][5];
    
    • 解析:以上二维数组a可以卡号曾一个两行五列的数组。
  • 思考:多维数组的使用?

    练习1:

    public class ArrayDemo05 {
        public static void main(String[] args) {
            /*
            1,2
            2,3
            3,4
            4,5
             */
            int[][] array ={{1,2},{2,3},{3,4},{4,5}};
            System.out.println(array[0]);
        }
    }
    

    程序结果:

    image-20211207200620969

    • 输出一个对象!!

    练习2:

public class ArrayDemo05 {
    public static void main(String[] args) {
        /*
        1,2
        2,3
        3,4
        4,5
         */
        int[][] array = {{1, 2}, {2, 3}, {3, 4}, {4, 5}};
        printArray(array[0]);
    }
    //打印数组元素
    public static void printArray(int[] arrays) {
        for (int i = 0; i < arrays.length; i++) {
            System.out.print(arrays[i] + " ");
        }
    }
}

程序结果:

image-20211207201116682

​ 练习3:

public class ArrayDemo05 {
    public static void main(String[] args) {
        /*
        1,2 array[0]
        2,3 array[1]
        3,4 array[2]
        4,5 array[3]
         */
        int[][] array = {{1, 2}, {2, 3}, {3, 4}, {4, 5}};
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                System.out.println(array[i][j]);
            }
        }
    }
}

程序结果:

image-20211207202122742

posted @ 2023-08-18 15:59  努力学技术的小豪  阅读(72)  评论(0)    收藏  举报