论坛首页 入门技术论坛

数组知识点回顾二

浏览 1438 次
精华帖 (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;
}
}
}
 
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics