一维数组
数组声明
- 两种声明方式:
int[] arr1;
int arr2[];
- 在java中数组就是一个对象,数组元素可看作对象的属性。在数组声明后,存放临时变量的栈区会有一个数组引用,但是还没有初始化,即存放实例对象的堆区还没有为数组引用开辟空间创建对象。毕竟没有使用new关键字。
数组初始化的三种方法
- 默认初始化
- 静态初始化
- 动态初始化
具体使用方法代码
/**
* 测试数组声明 与 初始化
* @author dxt
*
*/
public class Test01 {
public static void main(String[] args){
//声明一个整型数组,没有分配空间
int[] arrs;
// 给数组分配连续的10个整型空间,通过默认初始化每个数组元素赋值为0
//即系统在执行new时,就为数组对象分配空间,空间中的为默认值
arrs = new int[5];
//声明strs 并 静态初始化strs, 直接初始化内容
String[] strs = {"aa", "bb", "cc", "dd"};
Student[] stus = new Student[3]; //声明一个自由类型数组
//输出数组内容
for(int i = 0; i<arrs.length; i++){
System.out.println(arrs[i]);
}
//动态初始化 stus[], 即对每个stus[i]分别进行初始化
//为stus[]赋初值,并输出
for(int i = 0; i<stus.length; i++){
stus[i] = new Student(i, "stu");
}
for(int i = 0; i<stus.length; i++){
System.out.println(stus[i].getId()+"\t"+stus[i].getName());
}
//foreach循环:用于读取数组元素的值,不能修改元素的值
for(String temp : strs){
System.out.println(temp);
}
}
}
/**
* 学生类
*/
class Student{
private int id;
private String name;
public Student(){
super();
this.id = 0;
this.name = null;
}
public Student(int num, String name){
super();
this.id = num;
this.name = name;
}
public void setd(int id){
this.id = id;
}
public int getId(){
return this.id;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
}
输出结果:
二维数组
测试代码
import java.util.Arrays;
/**
* 测试二维数组
* @author dxt
*
*/
public class Test2DArray {
public static void main(String[] args){
//定义二维数组
int[][] a = new int[3][];
//初始化
a[0] = new int[]{10, 11};
a[1] = new int[]{20, 21, 22};
a[2] = new int[]{30};
for(int i=0; i<a.length; i++){
System.out.println(Arrays.toString(a[i]));
}
//静态初始化二维数组
int[][] b = {
{19},
{29, 28},
{39, 38, 37}
};
for(int i=0; i<b.length; i++){
System.out.println(Arrays.toString(b[i]));
}
}
}