浏览 1463 次
锁定老帖子 主题:数组知识点回顾二
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-08-27
1、调用数组对象的方法:
Java数组继承了Object类,因此继承了Object类的所有方法。 程序举例: package secondsection; /* * Java数组继承了Onject类,因此继承了Object类的所有方法。 * 其中以下例子中使用了两个方法,一个是equals方法,另外一个是instanceof方法, * 其中equals方法没有被数组覆盖,如果要判断两个对象相等的话,必须是同一个对象引用,而不是 * 像String类那样只要类型和内容相同就行 */ public class MethodOfArray { public static void main(String[] args) { int[] a = new int[4]; int[] b = new int[4]; int[] c = a; int[][][] d = new int[2][3][4]; System.out.println(a instanceof Object); System.out.println(a instanceof int[]); System.out.println(d[0] instanceof int[][]); System.out.println(d[0][2] instanceof int[]); System.out.println("---------------1----------------"); System.out.println(a.equals(b)); System.out.println(a.equals(c)); } }
2、把数组作为方法参数或者是返回值:
程序举例: package thirdsection; /* * 把数组作为方法参数和和方法的返回值 */ public class Swaper { //交换两个数组的内容,这两个数组的长度必须为一样,这样才能进行交换 public static void change(int[] array1,int[] array2) { for(int i=0;i<array1.length;i++) { int temp = array1[i]; array1[i] = array2[i]; array2[i] = temp; } } //交换变量a与b的内容 public static void change(int a,int b) { int temp = a; a = b; b = temp; } //获得字符串中的所有字符 public static char[] getChars(String str) { if(str==null) { return new char[0]; } char[] result = new char[str.length()]; for(int i=0;i<str.length();i++) { result[i] = str.charAt(i); } return result; } public static void main(String[]args) { int[] array1 = {4,5,6}; int[] array2 = {7,8,9}; System.out.println("交换数组前:"); for(int i=0;i<array1.length;i++){ System.out.print(array1[i]+" "); } System.out.println(); for(int i=0;i<array2.length;i++){ System.out.print(array2[i]+" "); } System.out.println(); change(array1,array2); System.out.println("交换数组后:"); for(int i=0;i<array1.length;i++){ System.out.print(array1[i]+" "); } System.out.println(); for(int i=0;i<array2.length;i++){ System.out.print(array2[i]+" "); } System.out.println(); System.out.println("----------------------------------"); int a = 2009; int b = 1986; System.out.println("交换整型变量前:"); System.out.println("a="+a); System.out.println("b="+b); change(a,b); System.out.println("交换整型变量后:"); System.out.println("a="+a); System.out.println("b="+b); String str= "我爱中国"; System.out.println("Str="+str); char[] result = getChars(str); System.out.println("获取字符后:"); for(int i=0;i<str.length();i++) { System.out.println(result[i]); } } } 注意:String类中的toCharArray()方法能够返回包含字符串中所有字符的数组,因此以上Swaper.getChars("Hello");和"Hello".toCharArray();是等价的。
3、数组排序:
数组排序是指把一组数据按照特定的顺序排列——介绍简单的排序算法,冒泡排序。 程序举例: package fourthsection; /* * 孙卫琴《Java面向对象编程》中数组这个章节中的冒泡排序算法用Java实现 */ public class ArraySort2 { public static void bubbleSort(int[] array) { for(int i=0;i<array.length-1;i++) { for(int j=0;j<array.length-i-1;j++) { if(array[j]>array[j+1]) { int temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } print(i+1,array); } } public static void print(int time,int[] array) { System.out.print("第"+time+"趟排序:"); for(int i=0;i<array.length;i++){ System.out.print(array[i]+" "); } System.out.println(); } public static void main(String[] args){ int[] array = new int[]{4,7,5,3,9,0}; bubbleSort(array); } } 注意:数组的冒泡排序时双层嵌套循环组成,一个内层循环,一个外层循环。循环的方程式: for(int i=0;i<array.length-1;i++) {//外层循环 for(int j=0;j<array.length-i-1;j++){//内层循环 if(array[j]>array[j+1]){//通过条件判断 int temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |