数组
概念:
- 相同数据类型元素的集合,多个数据
- 引用数据类型,对象,数组可以存储基本数据类型,也可以储存引用数据类型
**是一种线性数据结构,**在内存空间是连续的
作用:
储存多个数据,并且类型相同
声明方式:
- int[] a; || 数据类型[] 数组名字 || 建议使用第一种
数据类型数组中的数据类型 - int a[]; || 数据类型 数组名字[]
- Java数组在创建时必须给给定的长度,一旦定义就不可修改
- 在内存空间中是一个连续的空间 为其中每个存储空间初始化值
变量的数据类型 | 默认初始化值 |
byte | 0 |
short | 0 |
int | 0 |
long | 0 |
double | 0.0 |
float | 0.0 |
boolean | false |
char | \u0000(空格的UNICODE码) |
string | null |
- int [] a=new int[10]; 堆空间创建了一个数组对象,有10连续的空间. 初始化和为零
创建方式:
- int[] a = new int[10];
堆空间创建了一个数组对象,有10连续的空间. 初始化和为零
数据类型和前面的声明类型对应 int[] a 数组数据为int,元素都是默认的初始化值 - int[] arry = new int[]{1, 3, 4, 5, 24};
在创建时直接初始化,根据内容的数量,确定数组的长度,分配内存,同时将其初始化 - int[] arr2 = {1, 2, 34, 5, 6};
简写
将对象(数组)以字符串的形式进行输出
System.out.println(Arrays.toString(a))
案例:
import java.util.Arrays;
public class Array01 {
public static void main(String[] args) {
//创建的三种方式
//int[] a = new int[10];
//堆空间创建了一个数组对象,有10连续的空间. 初始化和为零
//数据类型和前面的声明类型对应 int[] a 数组数据为int,元素都是默认的初始化值
int[] a = new int[10];
//将对象(数组)以字符串的形式进行输出
System.out.println(Arrays.toString(a));
boolean[] b = new boolean[10];
System.out.println(Arrays.toString(b));
//在创建时直接初始化,根据内容的数量,确定数组的长度,分配内存,同时将其初始化
int[] arry = new int[]{1, 3, 4, 5, 24};
//简写
int[] arr2 = {1, 2, 34, 5, 6};
System.out.println(Arrays.toString(arry));
System.out.println(Arrays.toString(arr2));
}
}
- 一旦创建对象创建就会在堆空间中有一个存储位置,
- 如果存储的是引用类(类类型),会存储对向的引用
- 数组中如果存储的是基本类型,存储的是具体的值
车类
public class Car {
private String name;
public Car(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//重写Object类toString()方法
@Override
public String toString() {
return "Car :name="+this.name;
}
}
引用类
= new Car("car0");//一旦创建对象创建就会在堆空间中有一个存储位置
Car car1 = new Car("car1");
Car car2 = new Car("car2");
Car car3 = new Car("car3");
Car car4 = new Car("car4");
//如果存储的是引用类(类类型),会存储对向的引用
Car[] cars = new Car[]{car0,car1,car2,car3,car4};
System.out.println(Arrays.toString(cars));
数组的访问:
- 数组名字[索引] 例如:a[0],a[1];
注意
- 数组的索引从0开始。
- 索引的数据类型是整型
- 索引最大值和数组长度始终差1
注意使用合法的索引访问,否则会程序终止,抛出异常
数组越界:ArrayIndexOutOfBoundsException
数组迭代的两种方式:
第一种:for循环
int [] a = {1,2,3,4,5,6,7};
// 0 1 2 3 4 5 6
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);//取出数组第i个元素
}
第二种:增强for循环
for(数组元素的类型 临时变量名字 :数组的名字){
System.out.println(临时变量名字 );
}
for (int item :a) {
System.out.println(item);
}