数组

数组:就是相同类型元素按照一定顺序排列的集合。

特点:1.数组依次存放,使用连续内存。

   2.一旦被创建,长度就是确定的。

   3.数组的类型可以是基本类型和引用类型。

缺点:添加删除元素效率低

优点:按照索引查找某个元素效率高

声明数组: 数据类型[] 数组名;或者数据类型 数组名[]。  

例如:int[] arr; int arr[];

数组的使用:数组就是通过下标进行访问其中的元素,下标从0开始,最大下标是数组的长度-1;

使用new关键字创建数组:数组名=new 数据类型[长度];

如何访问数组中的元素:数组名[下标].

public static void test(){

int []arr;//声明数组

arr= new int[5];//创建数组:数组名=new 数据类型[长度]

arr[0]=1;//给数组赋值,数组从下标为0开始

arr[1]=2;

arr[2]=3;

arr[3]=4;

arr[5]=5;

System.out.println("数组的长度"+arr.length);//数组名.length    数组长度

for(int i=0;i<arr.length;i++){

System.out.println("数组中第"+(i+1)"元素是"+arr[i]);

}

}

数组的静态初始化:除了用new关键字产生数组,还可以定义数组的同时就为元素分配的空间单位赋值。

语法:数据类型[] 数组名={元素1,元素2......};

容易出现的异常:ArrayIndexOutOfBoundsException(数组下标越界异常):使用的 数组下标超过最大下标(数组的长度-1)

        NullPointerException(空指针异常):试图对空对象进行操作

增强for循环:for-each循环,通过增强循环可以很方便的操作数组和集合。

      for(元素类型 变量名:数组或集合){

}

示例:

public static void test1(){

double [] arr ={1.0,2.0,3.0,4.0};//定义数组并赋值  

System.out.println("数组的长度为"+arr.length);

System.out.println("普通for循环");

for(int i=0;i<arr.length;i++){

System.out.println("第"+(i+1)+"个元素的值是"+arr[i]);

}

System.out.println("使用for增强循环");

for(double a:arr){

System.out.println(a);

}

}

二维数组:本质是以数组为元素的数组,就是 数组的数组。

语法:数据类型 数组名[][];

int  arr [m][n];//定义了一个m行n列的数组 ,类型为int。 下标共有m*n个。

public class test3{

  public static void main(String[] args){

  int arr[3][4];//定义一个三行四列的数组。 第一维不能为空 。

    for(int i=0; i<arr.length;i++){

    for(int j=0;j<arr[i].length;j++){//遍历数组

System.out.print(arr[3][4]);

}

System.out.println();

}

}

}

原文地址:https://www.cnblogs.com/javatask/p/6681113.html