编程语言
首页 > 编程语言> > 8.11Java之数组知识回顾

8.11Java之数组知识回顾

作者:互联网

8.11Java之数组知识回顾

数组

数组定义

相同类型数据的有序集合

创建数组时的内存分配说明

数组的使用

通过索引去使用数组:

数组的遍历方式

普通for循环:

增强for循环:--->因为数组本身是一个对象

普通for循环打印数组内容
    /**
    * 普通for循环方法
    */
   public static void forArray(){
       int[] number = {1,2,3,4,5};
       for (int i=0; i<number.length; i++){
           System.out.println(number[i]);
      }
  }
增强for循环打印数组内容
    /**
    * 增强for循环打印数组内容
    */
   public static void forEachArray(){
       int[] number = {5,4,3,2,1};
       for (int num : number){
           System.out.println(num);
      }
  }

这两种打印方法在本质上是有区别的主要区别在内存上:

普通for循环:

增强for循环:

数组的关键理解
    /**
    * 数组赋值的方法
    */
   public static void changeArray(){
       //int[] number = {};
       /*
       上面这个写法实际上在堆内存当中并没有开辟对象空间
       所以之前直接循环是无法对数组进行赋值
       基本数据类型的数组无法使用动态分配的方式进行赋值
       因为基本数据类型不需要new一个对象去创建。即便使用包装类那么返回的也是一个基本数据类型的值
       而该值不需要创建对象
        */
       int[] number = new int[10];
       for (int i=0; i<10; i++){
           number[i] = 10*(i-1);
           System.out.println(number[i]);
      }
  }

   /**
    * 动态分配空间赋值
    */
   public static void changeArrays(){
       int[] number = {};
       for (int i=0; i<number.length; i++){
           number[i] = new Integer(10*(i-1));
           System.out.println(number[i]);
      }
       /*
       可以通过编译,但是没有结果
        */
  }
数组练习
    /**
    * 遍历char数组,倒序输出数组内容
    * @param arr
    */
   public static void print(char[] arr){
       for (int i=arr.length-1; i>=0; i--){
           System.out.println(arr[i]);
      }
  }
    /**
    * 遍历int数组,获取最大值和最小值
    * @param arr
    */
   public static void printMaxMin(int[] arr){
       int max = arr[0];
       int min = arr[arr.length-1];
       for (int i=0; i<arr.length; i++){
           if (arr.length==1){
               System.out.println(arr[i]);
          }else {
               if (arr[i]>max){
                   max = arr[i];
              }else if (arr[i]<min){
                   min = arr[i];
              }
          }
      }
       /*
       抓头尾设为变量,然后用数据进行比较
       因为是比较大小所以需要比较必须有比较的对象
        */
       System.out.println(max);
       System.out.println(min);
  }
    /**
    * 实现一个随机的点名器
    *     使用循环去读取多对象--->设置索引为随机的
    * @param arr
    */
   public static void randomPrintName(String[] arr){
       int randomnumber = (int) (Math.random()*arr.length);
       System.out.println(arr[randomnumber]);
  }

多维数组

本章以二维数组进行举例

二维数组的定义:

数组中套数组

定义二位数组

实例:

static int[][] doubleArray = {{1,2},{2,3},{3,4}};
//如果使用的是直接定义长度的话
//不同维度的数组可以定义不同的空间长度

打印二维数组内的内容

实例:

    public static void print(int[][] arr){
       for (int[] num : arr){
           for (int number : num){
               System.out.println(number);
          }
           System.out.println(num);
      }
  }

num为引用,打印出来的是一个hash地址

number为内容的引用,打印出来的是具体值

二维数组的内存分析举例

注意:

给二维数组定义长度
    static int[][] doubleArrays = new int[5][]; //这里就没有定义二维数组的长度
   public static void createSpace(int[][] arr){
       arr[0] = new int[2];
       arr[0][1] = 1;
       System.out.println(arr[0][1]);
       /*
       因为要给二维数组的内部再进行长度定义,那么需要找到一位数组的索引
       然后再通过新建对象的方法给该索引下的空间进行长度定义
        */
  }

 

标签:arr,Java,int,number,System,数组,println,8.11
来源: https://www.cnblogs.com/JunkingBoy/p/15129871.html