[2014-07-25]JAVA笔记_数组(Array)

一、数组(Array):相同类型数据的集合就叫数组。

二、数组定义: type[] 变量名 = new type[数组长度]; 例如定义长度为 10 的数组: int[] a = new int[10]; 或者 int a[] = new int[10];

三、数组中的元素索引是从 0 开始的。 对于数据来说,最大的索引 == 数组长度 -1

四、定义数组的第3种方式:type[] 变量名 = {new type[]} {逗号分隔的初始化值列表};

五、 Java 中的每个数组都有一个名为 length 的属性,表示数组的长度。length 属性是 public,final,int 的。数组长度一旦确定,就不能改变大小。

六、 int[] a = new int[10],其中 a 是一个引用, 它指向了生成的数组对象的首地址,数组中每个元素都是 int 类型, 其中仅存放数值本身


//Array 
public class ArrayTest{
	public static void main(String[] args){
		/* 第一种定义方式
		int[] a = new int[4];	//有new关键字说明生产了对象,所以数组属于引用数据类型。

		a[0] = 1;
		a[1] = 2;
		a[2] = 3;
		a[3] = 4;

		System.out.println(a[2]);
		*/

		// 第二种定义方式
		int a[] = new int[2];	//第一种方式较好。因为int[]是作为一个整体,意思也就是是定义了一个int[] 这种类型的变量a.

		a[0] = 1;
		a[1] = 2;
		System.out.println(a[1]);

		//第三种定义方式
		int[] b = {1, 2, 3, 4};

		System.out.println(b[2]);

		int[] c = new int[]{1,2,3,4};

		System.out.println(b[3]);


		//length 属性
		int[] d = new int[10];
		for(int i = 0; i < d.length; i++){
			d[i] = i + 1;
			System.out.println(d[i]);
		}

		//数组默认初始值
		int[] e = new int[4];
		System.out.println(e[3]);	// 0

		boolean[] f = new boolean[3];
		System.out.println(f[2]);	//false

		//数组比较
		int[] g = {1, 2, 3};
		int[] h = {1, 2, 3};
		
		System.out.println(g.equals(h));	//false.这个equals()方法是继承Object,数组并没有 override这个方法,比较的是地址,而不是内容。



	}
}




//引用数据类型
public class ArrayTest2{
	public static void main(String[] args){
		
		Person[] p = new Person[3];	//声明Person类型数组。没有生成对象,生成了3个引用,p还是指向首地址
		
		System.out.println(p[0]);	//引用类型成员变量初值null

		p[0] = new Person(10);         //p[0]引用保存的new返回的地址
		p[1] = new Person(20);
		p[2] = new Person(30);

		for(int i = 0; i < p.length; i++){
		
			System.out.println(p[i].age);
		}

		Person[] p2 = new Person[5];

		for(int i = 0; i < p2.length; i++){
		
			System.out.println(p2[i]);
		}


	}
}

class Person{

	int age;

	public Person(int age){
		this.age = age;
	}
}




public class ArrayTest3{
	public static void main(String[] args){
	
		Student[] s = new Student[10];

		for(int i = 0; i < s.length; i++){
		
			s[i] = new Student();
			s[i].name = i % 2 == 0 ? "zhangsan":"lisi";
		}

		for(int i = 0; i < s.length; i++){
		
			System.out.println(s[i].name);
		}

	}
}

class Student{

	String name;
}

七、二维数组。二维数组是一种平面的二维结构,本质上是数组的数组。 二维数组的定义方式:type[][] a = new type[2][3];


//二维数组
public class ArrayTest4{
	public static void main(String[] args){
		
		int[][] a = new int[2][3];

		System.out.println(a instanceof Object);
		System.out.println(a[0] instanceof int[]);	//验证i[0]是一个整型数组
		int m = 0;
		for(int i = 0; i < 2; i++){
		
			for(int j = 0; j < 3; j++){
				m++;
				a[i][j] = 2 * m;
				System.out.print(a[i][j] + " ");
			}
			System.out.println();
		}
		

	}
}



//不规则数组
public class ArrayTest6{
	public static void main(String[] args){
	
		/*
		int[][] a = new int[3][];

		a[0] = new int[2];
		a[1] = new int[3];
		a[2] = new int[1];
		*/

	//	int[][] b = new int[][3];	//Error
	
		int[][] b = new int[][]{ {1, 2, 3}, {4}, {5, 6, 7, 8} };

		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();
		}
	}
}

Example:

//元素互换
public class Swap3{

	public static void swap(char[] ch, char c){

		ch[0] = 'C';	//ch引用指向数组a的首地址
		c = 'D';

	}

	public static void main(String[] args){
	
		char[] a = {'A', 'B'};
		swap(a, a[1]);	//传递数组的引用,和数组的第2个值
		for(int i = 0; i < a.length; i++){
		
			System.out.println(a[i]);
		}

	}
}







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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值