读书人

数组知识点回想二

发布时间: 2012-11-20 09:55:43 作者: rapoo

数组知识点回顾二

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;}}}
?

读书人网 >其他相关

热点推荐