免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2042 | 回复: 1
打印 上一主题 下一主题

jdk5的数组 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-08 18:31 |只看该作者 |倒序浏览
今天我们讲个不一样的概念――数组,数组也没什么不好理解的,就是一组数。不过这组数有点特性。今天我们的任务就是,了解这个有特性的这组数。下面我们具体讲一下它有哪些特性: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 = new int;


for ( int j = 0; j < i; j++ ) {


matrix[j] = i * j;


}


}


//
7步打印矩阵

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


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


printArray(matrix);


System.out.println();


}


}


public static void printArray(int[] array) {


System.out.print('<');


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



//
打印一个元素


System.out.print(array);


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

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 = (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 不相等.");

}


}

}此源码和其它例子打包下载

http://www.100jq.com/upload/2007_07/07070716584024.rar




原文出处:http://www.100jq.com/show.aspx?id=13&cid=11

[ 本帖最后由 perryhg 于 2007-7-12 00:17 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-07-08 21:15 |只看该作者
注意一下笑脸吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP