Java基础教程(6)--数组

1. 基本概念

数组中的每一项都称为元素,每个元素都由一个数字索引(也称为下标)访问,从0开始。例如,第四个元素的索引是3。下面的程序创建一个int类型的数组,将一些值放入数组中,并打印出每个值:

classArrayDemo{publicstaticvoidmain(String[] args){// 声明数组int[] anArray;// 指定数组的空间anArray =newint[10];// 初始化每个元素anArray[0] =100; anArray[1] =200; anArray[2] =300; anArray[3] =400;// 将每个元素打印出来System.out.println("Element at index 0: "+ anArray[0]); System.out.println("Element at index 1: "+ anArray[1]); System.out.println("Element at index 2: "+ anArray[2]); System.out.println("Element at index 3: "+ anArray[3]); }}

该程序的输出是:

Element atindex0:100Elementatindex1:200Elementatindex2:300Elementatindex3:400

在实际的编程中,可以使用循环结构遍历组中的每个元素,而不是像上面的示例那样单独处理每个元素。但是,这个例子清楚地说明了数组的语法。后续教程将介绍各种循环结构(for、while和do-while)。

2.声明一个引用数组的变量

前面的程序使用以下代码声明了一个名为anArray的数组:

int[] anArray;

与声明其他类型的变量一样,数组变量的声明有两部分:数组的类型和数组的名称。数组的类型被写成type[], type表示元素的数据类型,方括号表示这是一个数组变量。与其他类型的变量一样,声明数组变量实际上并不创建数组,它只是告诉编译器变量可以引用指定类型的数组。您还可以在名称后面加上方括号,就像在其他语言中那样,例如int anArray[],但是在Java中不建议这样做。

3.创建、初始化和访问数组

一种创建数组的方法是使用new操作符。下面的语句创建了一个长度为10的整数数组,并将这个数组的引用赋值给了anArray:

anArray= new int[4];

下面的语句为数组中的每个元素赋值:

anArray[0]=100;anArray[1]=200;anArray[2]=300;anArray[3]=400;

每个元素都可以通过数字索引进行访问:

System.out.println("Element1atindex0: " +anArray[0]);System.out.println("Element2atindex1: " +anArray[1]);System.out.println("Element3atindex2: " +anArray[2]);

也可以通过以下语法创建并初始化一个数组:

int[] anArray = {100,200,300,400};

在这里,数组的长度由括号内的元素数量决定,用逗号分隔。

还可以使用两个或更多对方括号声明数组(也称为多维数组),例如String[][]名称。在多维数组中,数组的每个元素都是一个数组。这与C或c++中的数组不同。结果是每个数组都允许有不同的长度,例如下面的MultiDimArrayDemo程序:

class MultiDimArrayDemo { public static void main(String[] args) { String[][] names = { {"Mr. ", "Mrs. ", "Ms. "}, {"Smith", "Jones"} }; // Mr. Smith System.out.println(names[0][0] + names[1][0]); // Ms. Jones System.out.println(names[0][2] + names[1][1]); }}

这个程序的输出是:

Mr.SmithMs.Jones

可以使用数组的length属性来获取数组的大小。以下代码将数组的大小打印到控制台:

System.out.println(anArray.length);

4.拷贝数组

有时候需要将数组拷贝一份,这样在操作一个数组时并不会影响另外一个数组。下面的代码并不能完成数组的拷贝:

anotherArray= anArray;

因为这个知识将数组对数组的引用赋值给另一个数组,在该点上,另一个数组和一个数组引用同一个数组,对任何一个变量执行操作都会影响数组。系统类有一个arraycopy方法,可以将数据从一个数组复制到另一个数组:

publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)

两个Object参数指定源数组和目标数组,三个int参数指定源数组中的起始位置,目标数组中的起始位置以及要复制的元素的数量。下面的声明了一个char数组,它使用System.arraycopy方法将源数组的子序列复制到目标数组中:

classArrayCopyDemo{publicstaticvoidmain(String[] args){char[] copyFrom = {'d','e','c','a','f','f','e','i','n','a','t','e','d'};char[] copyTo =newchar[7]; System.arraycopy(copyFrom,2, copyTo,0,7); System.out.println(newString(copyTo)); }}

这个程序的输出是:

caffein

Arrays类(位于java.util包中)也提供了copyOfRange方法来拷贝数组。不同之处在于,使用该方法不需要在调用方法之前创建目标数组,因为这个方法会返回一个数组:

classArrayCopyOfDemo{publicstaticvoidmain(String[] args){char[] copyFrom = {'d','e','c','a','f','f','e','i','n','a','t','e','d'};char[] copyTo = java.util.Arrays.copyOfRange(copyFrom,2,9); System.out.println(newString(copyTo)); }}

这个方法的三个参数分别表示源数组,要复制元素的起始位置(包含)和结束位置(不包含)。

java.util.Arrays类中提供的一些其他有用的方法是:

binarySearch方法:在数组中搜索特定值并获取其索引。

equals方法:比较两个数组以确定它们是否相等。

fill方法:使用指定值填充数组。

sort方法:按升序对数组进行排序。

相信有很多学习java的道友,海量知识分,绝对是Java干货,等各位的到来,我们一同从入门到精通吧!

Java学习交流:【47】974【9726】

Java基础教程(6)--数组_第1张图片
Java基础教程(6)--数组_第2张图片

你可能感兴趣的:(Java基础教程(6)--数组)