【java从入门到精通】day20--下标越界及小结--数组的使用

 

1、数组的四个基本特点

  • 其长度是确定的。数组一旦被创建,它的大小就是不可改变的

  • 其元素必须是相同类型,不允许出现混合类型。

  • 数组中的元素可以是任何数据类型,包括基本类型和引用类型。

  • 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的

2、数组边界

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

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

  • 小结:

    • 数组是相同数据类型(数据类型可以为任意类型)的有序集合

    • 数组也是对象,数组元素相当于对象的成员变量

    • 数组长度是确定的,不可变的。如果越界,则报异常:ArrayIndexOutOfBoundsException

3、数组的使用

  • 普通的For循环

  • For-Each循环

  • 数组作为方法入参

  • 数组作返回值

  • 示例1:

package a1;

public class array03 {
   public static void main(String[] args) {
       int [] arrays = {1,2,3,4,5};
       //打印全部的数组元素
       for (int i = 0; i < arrays.length; i++) {
           System.out.println(arrays[i]);
      }

       System.out.println("=======================================");
       //计算所有元素的和
       int sum = 0;
       for (int i = 0; i < arrays.length; i++) {
           sum += arrays[i];
          }
           System.out.println("sum=" + sum);

           System.out.println("=======================================");
           //查找最大元素
           int max = arrays[0];
           for (int j = 1; j < arrays.length; j++) {
               if (arrays[j]>max){
                   max = arrays[j];
              }

          }
       System.out.println("max=" + max);

      }
  }

 

  • 示例2:

package a1;

public class array04 {
   public static void main(String[] args) {
       int[] arrays = {1,2,3,4,5};
       //JDK1.5,没有下标
     // for (int array : arrays) {
       // System.out.println(arrays);
       //}
      // printArray(arrays);

       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[] = arrays[i];思考思路
           result[j] = arrays[i];

      }
       return result;
  }
}

 

posted @ 2021-01-06 22:05  啊健best  阅读(52)  评论(0)    收藏  举报