Java 数组学习笔记

目录

数组

Java数组的定义和初始化

Java 数组索引

Java数组遍历

Java中的多维数组

Java多维数组的访问

附录

代码示例1


数组

数组是一个存放多个数据的容器。

  • 数据是同一种类型
  • 所有的数据是线性规则排列
  • 可通过位置索引来快速定位访问数据
  • 需明确容器的长度

 

Java数组的定义和初始化

int a[];
int[] b; //推荐用这种方式来定义数组

上面代码中的a和b数组只定义了,但是没有new操作,实际上是null。

 

int[] c = new int[2];  //c有2个元素,都是0 (见附录,代码示例1)
c[0] = 10;  c[1] = 20;

 

我们也可以在定义的同时对数组进行初始化。

int d[] = new int[]{0,2,4};

int d1[] = {1,3,5};  //这是一种简写

 

Java 数组索引

  • 数组的length属性标识了数组的长度
public class Demo1 {

	public static void main(String[] args) {
		int[] a = new int[] {3,4,5,6,7};
		System.out.println(a.length);
	}
	
}

如上,这里的数组里元素有5个。

  • 数组的索引是从0开始的,最大的索引是 length-1 (Java中好像是不能像Python那样有-1的索引的,这点需要注意)
public class Demo1 {

	public static void main(String[] args) {
		int[] a = new int[] {3,4,5,6,7};
		System.out.println(a[0]);  //输出结果为3
		System.out.println(a[4]);  //输出结果为7
	}
	
}
  • 如果索引超出范围,会报ArrayIndexOutOfBoundsException异常。

 

Java数组遍历

public class Demo1 {

	public static void main(String[] args) {
		
		int[] a = new int[] {3,4,5,6,7};
		
		//需要自己控制索引位置
		for (int i = 0; i < a.length; i++) {
			System.out.println(a[i]);
		}
		
	}
	
}
public class Demo1 {

	public static void main(String[] args) {
		
		int[] a = new int[] {3,4,5,6,7};
		
		//无需控制索引位置
		for (int e : a) {
			System.out.println(e);
		}
		
	}
	
}

上面两种遍历出来结果都是一样的。但第二种方法更好,不会存在越界的问题。

 

Java中的多维数组

//规则的多维数组
int a[][] = new int[2][3]; //2行3列

上面代码可以用一张图来形象表示:

//不规则的多维数组
int b[][];
b = new int[3][]; 		//定义这个数组有3行
b[0] = new int [3];		//接着对数组定义这行有多少列
b[1] = new int [4];
b[2] = new int [5];

 

Java多维数组的访问

 

用for语句的第一种方法:

public class Demo1 {

	public static void main(String[] args) {
		
		
		//不规则的多维数组
		int b[][];
		b = new int[3][]; 		//定义这个数组有3行
		b[0] = new int [] {1,2,3};		//接着对数组定义这行有多少列
		b[1] = new int [] {4,5,6,7};
		b[2] = new int [] {8,9,10,11,12};
		

		for (int i = 0; i < b.length; i++) {
			for (int j = 0; j < b[i].length; j++) {
				System.out.print(b[i][j]+",");
			}
			System.out.println();
		}

		
	}
	
}

输出结果:

1,2,3,
4,5,6,7,
8,9,10,11,12,

 

 

下面我们是访问多维数组的另一种方法,这类型的for语句也被称为 for-each语句。(注意本例子中,println与print的区别)

public class Demo2 {

	public static void main(String[] args) {
		
		//不规则的多维数组
		int b[][];
		b = new int[3][]; 		//定义这个数组有3行
		b[0] = new int [] {1,2,3};
		b[1] = new int [] {4,5,6,7};
		b[2] = new int [] {8,9,10,11,12};
			
		for (int[] items : b) {
			for (int item : items) {
				System.out.print(item+",");
			}
			System.out.println();
		}
		
	}
	
}

输出结果:

1,2,3,
4,5,6,7,
8,9,10,11,12,

 

 

附录

代码示例1

public class Demo1 {

	public static void main(String[] args) {
		int[] a = new int[5];
		for (int i = 0; i < a.length; i++) {
			System.out.println(a[i]);
		}
	}
	
}

输出结果:

0
0
0
0
0

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值