数组(复合数据类型的一种,本质上是数据的容器)
1、一维数组
(1)一维数组的声明
(1.1)int[ ] a;
(1.2) int a[ ];
(2) 一维数组的初始化
(2.1)int[ ] a ={1,2,3};
(2.2)int[ ] a = new int[3]; a[0] = 1; a[1] = 2; a[2] = 3;
(2.3)int[ ] a = new int[]{1,2,3};
注://当提供数组初始化器时,不能定义维度表达式,如下是错误的
int[] a = new int[3] {1,2,3};
(3)一维数组的遍历
(3.1)普通循环遍历数组:
int length = a.length;
for(int i =0;i<length;i++){
System.out.println(a[i]);
}
(3.2)增强for循环遍历数组:
for(int n:a){
System.out.println(n);
}
2、二维数组(用的少)
二维数组的每一个元素是一个一维数组
(1)二维数组的定义
int[][] arr = new int[3][5];---定义了一个整型的二维数组,其中包含3个一维数组,每个一维数组可以存储5个整数
(2)二维数组的初始化
方式一:int a[][]={{1,2,3},{4,5,6}};
方式二
:int[][] ints = new int[4][2];ints[i][j] =__; //分别赋值
方式三:第二维的长度可以动态申请
int[][] arr3 = new int[5][];//五行的长度
for(int i=0; i<arr3.length; ++i){
arr3[i]=new int[i+1]; //列的长度每次都变化。每次都要重新申请空间(长度)
for(int j=0; j<arr3[i].length; ++j)
arr3[i][j]= i+j;
}
(3)二维数组的遍历
增强for循环遍历二维数组:
for(int[] n:a){
for(int m :n){
System.out.println(m);
}
}
3、对象数组如何创建
package entity;
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package run;
import entity.Person;
public class Run {
public static void main(String[] args) {
//定义对象数组,定义是不会给对象分配内存
Person[] personArray = new Person[10];
//此时的对象数组中存放的是10个引用,没有内容
for(int i=0;i<personArray.length;i++) {
System.out.println(personArray[i]);
}
//给数组中的第一个对象初始化
personArray[0] = new Person();
personArray[0].setName("1号对象");
personArray[0].setAge(18);
//再次打印对象数组中的对象
for(int i=0;i<personArray.length;i++) {
System.out.println(personArray[i]);
}
}
}
4、数组在定义(创建)时,初始化时的内存分配情况
待续