欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 第八课 数组

程序员文章站 2024-01-06 14:06:58
...

一、
数组是相同数据类型的连续的数据集合,可以用一个统一的名字和不同的ID表示数组中的元素。按照数组的维度可以把数组分一维、二维和多维数组。

一维数组:

1.声明:
	声明数组:
	数据类型[] 数组名; 	| 或是数据类型 数组名[];
	int[] score; | int score[];
	String[] name;	| String name[];
	***注意:声明是不能指定数组长度:
	以下方式是错误的:
	int size[10];***
	
2.分配空间:
	声明数组只是的到了一个存储数据的变量,并没有为数组分配存储空间。在Java中,使用new来分配空间。
	数组名 = new 数据类型[数组长度];
	score = new int[10];
	name = new String[10];
	
3.声明时分配:
	数据类型 数组名 = new 数据类型[数组大小];
	int score = new int [10];
注意:一旦声明了数组的大小,就不能再修改。这里的数组长度也是必需的,不能少。

4.初始化数组:
	1. 使用 new 指定数组大小后进行初始化:
		创建数组之后,元素的值并不确定,需要为每一个数组的元素进行赋值
		type[] array = new type[size];	
		int [] score = new int[2]; 
		score[0] - 90;
		score[1] = 88;
	2.使用 new 指定数组元素的值
		type[] array = new type[value0, value1,......,valuen-1];
		int[] score = new int [90, 88];
	3.直接指定数组元素的值
		type[] array[value0, value1,.....,valuen-1];
		int[] score[90, 88];

二维数组
二维数组可以理解为一个特别一维数组,只是它的换素还是数组。Java 并不直接支持二维数组,但是允许定义数组元素是一维数组的一维数组

	1.声明一个二维数组:
	type 数组名[][] | 或是type[][] 数组名;
	int score[][]; | 或是char[][] sex;
	2.初始化二维数组:
		2.1. array=new type[][]{array0,array1, ....., arrayn-1};
		例如:
		int[][] array;
		array = new int[][]{
			{1, 2,3},
			{2,3,4},
		};
		
		2.2 array=new type[][]{new 构造方法(参数列),…};
		    例如:
		    int[][] temp;
			temp=new int [][]
			{
    			{new int(1),new int(2)},{new int(3),new int(4)}
			};
			
		2.3 type[][] array={{第1行第1列的值,第1行第2列的值,…},{第2行第1列的值,第2行第2列的值,…},…};
			例如:
		    int[][] temp={{1,2},{3,4}};

3、多维数组:
参考二维数组

4、数组Array内嵌方法

	1.比较两个数组是否相等:
	相等的条件不仅要求数组元素的个数必须相等,而且要求对应位置的元素也相等
	语法:
		Arrays.equals(Array a, Array b);
		
	2.填充数组:
	填充制定位置数组值
	语法:
		Arrays.fill(Array a, value);			//a: 要填充的数组, value:要填充的值
		
	3.查找指定元素:
	使用二分搜索法来搜索指定数组,以获得指定对象,该方法返回要搜索元素的索引值。
	语法:
		Arrays.binarySearch(Object[] a,Object key);	
		Arrays.binarySearch(Object[[]a, int startIndex, int stopIndex, Object key) ;
		a: 表示要查找的数组, startIndex: 表示开始索引位置下标;stopIndex: 表示结束索引位置下标; key:表示要查找的值。	

4.数组复制:
	Java实现了4种数组复制的方式:
	Arrays 类的方法:copyof();copyOfRang();
	System类的方法:arraycopy();
	Object类的方法:clone();
	1.Arrays类的方法:
	语法格式:
		Arrays.copyOf(dataType[] srcArray, int length);
	复制时,默认从源数组的第一个元素(索引值为 0)开始复制,目标数组的长度将为 length。如果 length 大于 srcArray.length,则目标数组中采用默认值填充;如果 length 小于 srcArray.length,则复制到第 length 个元素(索引值为 length-1)即止。
**注意:目标数组如果已经存在,将会被重构。**

		Arrays.copyOfRange(dataType[] srcArray,int startIndex,int endIndex);
	srcArray 表示源数组;startIndex 表示开始复制的起始索引,目标数组中将包含起始索引对应的元素,另外,startIndex 必须在 0 到 srcArray.length 之间;endIndex 表示终止索引,目标数组中将不包含终止索引对应的元素,endIndex 必须大于等于 startIndex,可以大于 srcArray.length,如果大于 srcArray.length,则目标数组中使用默认值填充。
**注意:目标数组如果已经存在,将会被重构。**

	2.System类的方法:
	语法格式:
		System.arraycopy(dataType[] srcArray,int srcIndex,int destArray,int destIndex,int length);
	srcArray 表示源数组;srcIndex 表示源数组中的起始索引;destArray 表示目标数组;destIndex 表示目标数组中的起始索引;length 表示要复制的数组长度。使用此方法复制数组时,length+srcIndex 必须小于等于 srcArray.length,同时 length+destIndex 必须小于等于 destArray.length。
	注意:目标数组必须已经存在,且不会被重构,相当于替换目标数组中的部分元素。

	3.clone类的方法:
	语法格式:
	arrayName.clone();
	clone() 方法的返回值是 Object 类型,要使用强制类型转换为适当的类型.
	注意:目标数组如果已经存在,将会被重构
	static void MyArrayCopy() {
		int i = 0;
		int srcArray[] = {1, 2, 3, 4, 5,};
		int destArray1[] = Arrays.copyOf(srcArray, 8);
		int destArray2[] = Arrays.copyOfRange(srcArray, 1, 8);
		int destArray3[] = new int[5];
		System.arraycopy(srcArray, 0, destArray3, 0, 5);
		int destArray4[] = (int[])srcArray.clone();
		
		for(i = 0; i < destArray1.length; i++)
			System.out.print(destArray1[i] + "\t");
		System.out.println("\n=====================");
		for(i = 0; i < destArray2.length; i++)
			System.out.print(destArray2[i] + "\t");
		System.out.println("\n=====================");
		for(i = 0; i < destArray3.length; i++)
			System.out.print(destArray3[i] + "\t");
		System.out.println("\n=====================");
		for(i = 0; i < destArray4.length; i++)
			System.out.print(destArray4[i] + "\t");
		System.out.println("\n=====================");
	}
	输出结果:
	1	2	3	4	5	0	0	0	
	=====================
	2	3	4	5	0	0	0	
	=====================
	1	2	3	4	5	
	=====================
	1	2	3	4	5	
	=====================
5、数组排序:
		
	import java.util.Arrays;
	语法格式:
	Arrays.sort();

上一篇:

下一篇: