数组的遍历

数组的遍历

  • 遍历:从头到尾,依次访问数组每一个位置,获取每一个位置的元素.

  • 形式如下: 我们通过数组的下标操作数组,所以for循环变量操作的也是数组下标

  • 开始:开始下标0 结束:结束下标length-1 如何变化:++

    for(从下标为0的位置开始 ; 下标的取值 <= 数组的长度-1 ; 下标++){
    循环体;
    }
    //或
    for(从下标为0的位置开始 ; 下标的取值 < 数组的长度 ; 下标++){
    循环体;
    }

遍历数组的三种方法

  1. for

  2. for-each,

  3. toString

for循环遍历一维数组

  • 代码实现

    public static void main(String[] args) {
            int[] a = {1,2,3,4,5};
            for (int i = 0; i <=a.length-1; i++) {
                System.out.println(a[i]);
            }
        }

for循环遍历二维数组

  • 代码实现

     public static void main(String[] args) {
            int Arr[][]={{5,7,15},{8,4,11},{3,6,13}};
            for (int i = 0; i  

for-each遍历一维数组

  • 遍历数组就是获取数组的每个元素。通常遍历数组都是使用for循环来实现的,但是for循环不够简洁,下面我们简要介绍一下使用foreach语句来实现遍历数组的方法。

  • java5之后,Java提供了一种更简洁的循环:foreach循环,这种循环遍历数组和集合更加简洁。使用foreach循环遍历数组时,无须获得数组和集合长度,无须根据索(下标)引来访问数组元素,foreach循环自动遍历数组和集合的每一个元素。

  • 语法格式:

    for(type element: array)
    {
        System.out.println(element);
    }
    ​
  • 代码实现

     public static void main(String [] args){
            int [] arr={1,2,3,4,5};
            for (int a:arr) {//将arr数组里面的值一个一个的赋值给a。
                System.out.print(a+"\t");
            }
        }

注意:

  • foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更

    集合内容以避免产生不可预知的副作用。 因此不要对foreach的循环变量赋值。

  • 对foreach的循环变量赋值。代码实现

    public static void main(String [] args){
                int [] arr={1,2,3,4,5};
                 for(int a:arr){
                    a=0;
                System.out.print(a);
           }
           System.out.print("\n"+arr[0]);
    }
    运行结果:
    00000
    1
  • 从上面结果可以看出,由于在foreach循环中对数组进行赋值,结果导致不能正确遍历数组元素。而且当再次访问第一个数组元素时,发现数组元素依然没有改变。

for-each遍历二维数组

  • 代码实现

     public static void main(String [] args){
            int Arr[][]= {{5,7,15},{8,4,11},{3,6,13}};
            for(int a[]:Arr){//将其看成外循环 数组长度为3   先将{5,7,15}赋值给a[],再{8,4,11},再{3,6,13}
                for (int b: a) {
                    System.out.print(b+"\t");
                }
                System.out.println();
            }
        }

toString静态方法遍历一维数组

  • 利用Arrays工具类中的toString静态方法可以将一维数组转化为字符串形式并输出。

  • 已知打印一维数组的API为System.out.println ( Arrays.toString ());其参数为数组名或数组指针

  • 其支持的数据类型有很多,如:int[]、char[]、byte[]等

  • 代码实现

    public static void main(String [] args){
         int [] arr={1,2,3,4,5};
            System.out.println(Arrays.toString(arr));
        }

deepToString静态方法遍历二(多)维数组

  • 代码实现

       public static void main(String[] args) {
                int Arr[][]={{5,7,15},{8,4,11},{3,6,13}};
                System.out.println("Arr:"+Arrays.toString(Arr));
           		int b[][]={{5,7,15},{8,4,11},{3,6,13}};
           		System.out.println("Arr:"+Arrays.deepToString(b));
                int[][][] c = {{{1,2,3,4},{1,2,3,4},{1,2,3,4}},{{1,2,3,4},{1,2,3,4},{1,2,3,4}}};
                System.out.println("Arr:"+Arrays.deepToString(c));
            }
  • 运行结果

    /*
    运行结果:
    Arr:[[I@15db9742, [I@6d06d69c, [I@7852e922]
    Arr:[[5, 7, 15], [8, 4,11], [3, 6, 13]]
    注释:
    注: *Arr:[[I@15db9742, [I@6d06d69c, [I@7852e922]*	输出的是数组元素的地址
    这种输出结果是因为:
    Arr是一个二维数组。相当于一个长度为3的数组,但是这个数组的元素还是是数组。
    当执行Arrays.toString的时候相当于遍历数组,并且输出数组的元素,但是这个数组的元素是数组,所以这里输出的是数组元素的地址。
    */

deepToString()与toString()的区别

  • Arrays.deepToString()主要用于数组中还有数组的情况,

  • Arrays.toString()则相反,

  • 对于Arrays.toString()而言,当数组中有数组时,不会打印出数组中的内容,只会以地址的形式打印出来。

  • 代码实现

    public static void main(String[] args) {
    int a[] = {1, 2, 3};
    System.out.println(Arrays.toString(a));
    int b[][] = {{1, 2, 3}, {4, 5, 6}};
    System.out.println(Arrays.toString(b));
    System.out.println(Arrays.deepToString(b));}
    }
    /*结果:
    [1, 2, 3]
    [[I@14ae5a5, [I@7f31245a]
    [[1, 2, 3], [4, 5, 6]]
    */

你可能感兴趣的:(Java,算法,java,python)