数组

作者: 曾月月 | 来源:发表于2018-11-15 20:43 被阅读0次

    数组的简介:

    • 数组的定义:
      数组相当于一个容器,存放了一组相同类型的数据。

    • 数组存放的规则:
      是以下标(角标)来存放的,并且下标从0开始。

    • 声明规范:
      数据类型 [] 数组名 =初值。
      两种表达方式:
      int [] array = new int [数组的个数];
      int [] array = new int [5];
      int [] array = new int []{数组的元素};
      int [] array = new int []{1,2,3,4,5};
      public static void main(String[] args) {
      // 声明了一个 长度为5的 整型数组
      //注意:数组的长度 一旦声明 就 不能改变
      int [] array = new int [5];
      //右边:栈内存 左边:堆内存
      //堆内存:
      //1)垃圾回收机制, 2)有初始值 3)有内存地址
      //栈内存
      //执行完毕,立即释放内存
      索要查找的下标值超过了所定义的下标值
      public static void main(String[] args) {
      int a = 10;
      int[]array=new int [5];
      //java.lang.ArrayIndexOutOfBoundsException 数组下标越界!!(异常)
      //(如果所访问的下标超过所定义的数组下标就会出现上面的异常)
      //比如下面下标是 6 而上面的所定义的最大下标是5,所以超过,返回异常!
      array[6]=10;
      System.out.println(array[3]);

         //NullPointerException  空指针异常,访问了一个不存在的区域
         //当数组为空,返回上面的异常
         array=null;   
         System.out.println(array[3]);
      

    数组的遍历

    • 遍历数组就是获取数组中的每个元素。通常遍历数组都是使用for循环来实现。遍历一维数组简单。遍历二维数组需要使用双层for循环,通过数组的length属性可获得数组的长度。
    • int[] array =new int[]{1,3,5,7,9};
      //打印数组中所有的值 --遍历数组
      //array.length 数组的长度
      //第一种打印方法
      for(int =0;i<array.length;i++){
      System.out.println(array[i]);
      }
      //第二种打印方法
      //将数组 转化成字符串 来输出
      System.out.println(Arrays.toString(array));
      //需求:随机10个数 随机的区间为[15,150]
      // 1.把这个10个数放入数组中
      // 2.打印最大值
      int [] array = new int [10];
      for(int i = 0;i<arrar.length;i++){
      int num=(Math.random())*((150-15a+1)+15);
      //把数据放入数组 对应的位置中
      array[i]=num;
      }
      System.out.println(Arrays.toString(array));
      int max=0;
      for(int j=0;j<array.length;j++){
      if(max<array[j]){
      max=array[j];
      }
      }System.out.println("最大值为:"+max);
    • 数组由多个元素组成,每个元素都具有相同数据类型。

    一维数组

    • int intArrayOne[];
      //定义一个一维数组
      int intArrayTwo[] = {1,2,3,4,5};
      //静态初始化一个数组
      intArrayOne = new int[5];
      //动态初始化数组
      intArrayOne[3]=10;
      //给intArrayOne的第4个元素赋值为10
      System.out.println(intArrayOne[0]);
      //引用intArrayOne数组中的第1个元素并进行输出,因为此时第1个元素还被赋值,所以其值为整型的默认值0,输出为0
      System.out.println(intArrayOne[3]);
      //引用intArrayOne数组中的第4个元素并进行输出
      System.out.println(intArrayTwo[4]);
      //引用intArrayTwo数组中的第5个元素并进行输出
      /*
      静态初始化在声明一个数组变量的同时,进行赋值;动态初始化给一个已存在的数组类型的变量赋一个空的数组,两种方法在初始化后,
      变量所存储的数组的元素数目都是确定的,使用下标进行引用时不能超过其范围
      /
      foreach遍历循环
      /

      语法:
      for(元素类型 临时变量名:遍历对象){
      引用了临时变量的语句(临时变量存入的是遍历对象中的元素,而非元素对应的下标)
      }
      */
      //for循环输出一个数组中的所有元素
      for(int i=0;i<=intArrayTwo.length-1;i++){
      System.out.println(intArrayTwo[i]);
      }
      //可以使用便利循环进行简化
      for(int num:intArrayTwo){
      System.out.println(num);
      }

    多维数组

    /*
    以二维数组为例,二维数组可以看作是数组的数组,它里面的每一个元素都是一个数组,
    且这些数组的数据类型必须相同,但每个数组的大小可以不同
    */

    //二维数组的声明与初始化
    int intArrayOne[][] = {{1,2},{2,3},{3,4,5}};//静态初始化
    int intArrayTwo[][];
    int intArrayThree[][];
    //一次性为每一维分配空间
    intArrayTwo new = int[3][2]; //intArrayTwo数组共可以含有3个数组元素,其中每个数组元素都可以且只能含有两个整数

    //从最高维开始,分别为每一维分配空间
    intArrayThree = new int[3][];//intArrayThree数组共含三个数组元素
    intArrayThree[0] = new int[2];//第一个数组元素,可存储2个元素
    intArrayThree[1] = new int[3];//第二个数组元素,可存储3个元素
    intArrayThree[2] = new int[5];//第三个数组元素,可存储5个元素

    //二维数组元素的引用
    int num[][]=new int[2][];
    num[0]=new int[2];
    num[1]=new int[3];
    num[0][0]=1;
    num[0][1]=2;
    num[1][0]=3;
    num[1][1]=4;
    num[1][2]=5;
    System.out.println(num[0][1]);//输出num二维数组的第一个数组元素的第二个元素
    二维遍历循环:
    int numArray[][]={{1,2,3},{2,3,4},{4,5}};
    for(int[] intArray:numArray){
    for(int num:intArray){
    System.out.println(num);
    }
    }
    //输出所有元素

    • 数组的特点:
    1. 数组只能存储同一种 数据类型的数据。
    2. 数组是会给存储到数组中 的元素分配一个索引值的,索引值从0开始,最大的索引值是length-1;
    3. 数组一旦初始化,长度固定。
    4. 数组中的元素与元素之间的内存地址是连续的。

    相关文章

      网友评论

          本文标题:数组

          本文链接:https://www.haomeiwen.com/subject/xwsufqtx.html