java初学者实践教程9-数组

文章作者 100test 发表时间 2007:09:25 13:24:46
来源 100Test.Com百考试题网


下面我们具体讲一下它有哪些特性:

1数组中的元素是同一类型。数组的长度在创建时确定,并且在创建后不变。解释一下 声明一个数组 int i[5]. 这就是int类型,名字叫i的数组。里面的数都必须是int类型。并且长度在创建时确定了是5

2、在java语言中,数组就是一个对象,所以创建数组与创建对象一样也是用new关键字来创建。举个例子,s = new char[20]. p = new Point[50].

3、数组在被创建后,其元素被系统自动初始化了。字符元素被初始化为‘\u0000,而对于对象数组都被初始化为null 如果你不初始化的话,在内存是找不到它的位置的。

4、数组中的第一元素记做第0个,i[0]是数组i 的第一个元素。

说了这么些,我们还是得练练啊

实践:

public class TestArrays {

public static void main(String[] args) {

// 12: 声明并初始化数组变量

int[] array1 = { 2, 3, 5, 7, 11, 13, 17, 19 }.

int[] array2.

// 3: 显示数组初始化值

System.out.print("array1 is ").

printArray(array1).

System.out.println().

// 4: array2引用array1

array2 = array1.

// 更改array2

array2[0] = 0.

array2[2] = 2.

array2[4] = 4.

array2[6] = 6.

// 打印array1

System.out.print("array1 is ").

printArray(array1).

System.out.println().

// 5: 声明一个整数类型的二维数组

int[][] matrix = new int[5][].

// 6: 将这个矩阵构成三角形

for ( int i = 0. i < matrix.length. i ) {

matrix[i] = new int[i].

for ( int j = 0. j < i. j ) {

matrix[i][j] = i * j.

}

}

// 7步打印矩阵

for ( int i = 0. i < matrix.length. i ) {

System.out.print("matrix[" i "] is ").

printArray(matrix[i]).

System.out.println().

}

}

public static void printArray(int[] array) {

System.out.print(<).

for ( int i = 0. i < array.length. i ) {

// 打印一个元素

System.out.print(array[i]).

// 输出最后一个元素的时候不输出逗号

if ( (i 1) < array.length ) {

System.out.print(", ").

}

}

System.out.print(>).

}

}

jdk5.0中,我们发现了一些更简单的方法,打印一维数组时,用toString(array)方法,

打印二维数组时,用deepToString(array)方法。这样的话就剩了我们又是循环又是判断的。我们看个例子吧:

实践:

import java.util.Arrays.

public class ArraysTester {

private int[] ar.

public ArraysTester(int numValues) {

ar = new int[numValues].

for (int i=0. i < ar.length. i ) {

ar[i] = (1000 - (300 i)).

}

}

public int[] get() {

return ar.

}

public static void main(String[] args) {

ArraysTester tester = new ArraysTester(50).

int[] myArray = tester.get().

// 比较两个数组

int[] myOtherArray = tester.get().clone().

if (Arrays.equals(myArray, myOtherArray)) {

System.out.println("这两个数组是相等的!").

} else {

System.out.println("这两个数组是不相等的!").

}

// 填上一些值

Arrays.fill(myOtherArray, 2, 10, new Double(Math.PI).intValue()).

myArray[30] = 98.

// 打印数组

System.out.println("这是一个未排序的数组...").

System.out.println(Arrays.toString(myArray)).

System.out.println().

// 数组排序

Arrays.sort(myArray).

// 打印被排序的数组 toString()

System.out.println("这是一个被排序的数组...").

System.out.println(Arrays.toString(myArray)).

System.out.println().

// 得到特殊值的索引

int index = Arrays.binarySearch(myArray, 98).

System.out.println("98 被定位在第 " index "个位置上").

String[][] ticTacToe = { {"X", "O", "O"},

{"O", "X", "X"},

{"X", "O", "X"}}.

//打印二维数组用deepToString()

System.out.println(Arrays.deepToString(ticTacToe)).

String[][] ticTacToe2 = { {"O", "O", "X"},

{"O", "X", "X"},

{"X", "O", "X"}}.

String[][] ticTacToe3 = { {"X", "O", "O"},

{"O", "X", "X"},

{"X", "O", "X"}}.

if (Arrays.deepEquals(ticTacToe, ticTacToe2)) {

System.out.println("Boards 1 2 相等.").

} else {

System.out.println("Boards 1 2 不相等.").

}

if (Arrays.deepEquals(ticTacToe, ticTacToe3)) {

System.out.println("Boards 1 3 are 相等.").

} else {

System.out.println("Boards 1 3 are 不相等.").

}

}

}



相关文章


java初学者实践教程13-面向对象之多态
java初学者实践教程12-面向对象
java初学者实践教程11-泛型声明
java初学者实践教程10-集合类
java初学者实践教程9-数组
java初学者实践教程8—jdk5的拆箱与装箱
java初学者实践教程7-跳转语句
人民大学研究生导师招生不再“平均主义”
2008年外校推荐免试生申请攻读人大硕士生办法
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛