![]() |
|
||||||||||||||
| | 网站首页 | 数据库教程 | web编程 | 服务器 | 程序设计 | | ||
|
||
|
||||||
| 全新java初学者实践教程9(java SE5.0版)----jdk5的数组 | ||||||
作者:佚名 文章来源:不详 点击数: 更新时间:2007-9-2 ![]() |
||||||
|
今天我们讲个不一样的概念――数组,数组也没什么不好理解的,就是一组数。 1、数组中的元素是同一类型。数组的长度在创建时确定,并且在创建后不变。解释一下 声明一个数组 int i[5]; 这就是int类型,名字叫i的数组。里面的数都必须是int类型。并且长度在创建时确定了是5。 2、在java语言中,数组就是一个对象,所以创建数组与创建对象一样也是用new关键字来创建。举个例子,s = new char[20]; p = new Point[50]; 3、数组在被创建后,其元素被系统自动初始化了。字符元素被初始化为‘\u 4、数组中的第一元素记做第0个,i[0]是数组i 的第一个元素。 说了这么些,我们还是得练练啊 实践: public class TestArrays { public static void main(String[] args) { // 第1,2步: 声明并初始化数组变量 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 不相等."); } } }此源码和其它例子打包下载 原文地址 :http://www.100jq.com/show.aspx?id=13&cid=11本文来源:http://blog.csdn.net/Persuse3/archive/2007/07/07/1682208.aspx
|
||||||
| 文章录入:admin 责任编辑:admin | ||||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | ||||||
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 网站地图 | 管理登录 | | |||
|