Java中數組的定義和使用教程(二)

數組與方法調用

數組是一個引用數據類型,那麼所有的引用數據類型都可以為其設置多個棧內存指向。所以在進行數組操作的時候,也可以將其通過方法進行處理。

范例: 方法接受數組

public class ArrayDemo {
	public static void main(String args[]) {
			int data[] = new int[] {1, 2, 3};
			printArray(data);

	}
	//定義一個專門進行數組輸出的方法
	public static void printArray(int temp[]) {
		for (int i = 0; i < temp.length; i++) {
			System.out.print(temp[i] + "、");
		}		
	}
}

在方法的參數上由於需要接受一個整型數組,所以就實現瞭一個最為基礎的引用傳遞操作。

范例: 方法返回數組

public class ArrayDemo {
	public static void main(String args[]) {
			int data[] = init(); //接受數組
			printArray(data);
	}
	
	//此時的方法希望可以返回一個數組類型,所以返回值類型定義為整形數組
	public static int[] init() {
		return new int[] {1, 2, 3, 4, 6};
	}

	//定義一個專門進行數組輸出的方法
	public static void printArray(int temp[]) {
		for (int i = 0; i < temp.length; i++) {
			System.out.print(temp[i] + "、");
		}		
	}
}

那麼現在的數組上發生瞭引用傳遞,那麼也就意味著方法接受數組之後也可以對數組進行內容修改。

范例: 定義一個方法,該方法可以實現數組的內容的乘2

public class ArrayDemo {
	public static void main(String args[]) {
			int data[] = init();
			inc(data);
			printArray(data);
	}
	
	public static void inc(int arr[]) {
		for(int x = 0; x < arr.length; x++)
			arr[x] *= 2;
	}

	//此時的方法希望可以返回一個數組類型,所以返回值類型定義為整形數組
	public static int[] init() {
		return new int[] {1, 2, 3, 4, 6};
	}

	//定義一個專門進行數組輸出的方法
	public static void printArray(int temp[]) {
		for (int i = 0; i < temp.length; i++) {
			System.out.print(temp[i] + "、");
		}		
	}
}

Java對數組的支持

在Java本身給出的類庫之中也提供有對於數組的操作的相關支持方法。

1、數組排序:java.util.Arrays.sort(數組名稱);

范例: 實現數組排序操作

public class ArrayDemo {
	public static void main(String args[]) {
		int data[] = new int[] {5, 13, 1, 55, 77};
		char arr[] = new char[] {'D', 'C', 'F'};
		java.util.Arrays.sort(data);
		java.util.Arrays.sort(arr);
		printArray(data);
		printArray(arr);
	}

	//定義一個專門進行數組輸出的方法
	public static void printArray(int temp[]) {
		for (int i = 0; i < temp.length; i++) {
			System.out.print(temp[i] + "、");
		}
		System.out.println();
	}
	public static void printArray(char temp[]) {
		for (int i = 0; i < temp.length; i++) {
			System.out.print(temp[i] + "、");
		}
		System.out.println();
	}
}

隻要是基本數據類型的數組,Arrays.sort()都可以輕松地實現排序處理。

2、數組拷貝:指的是將一個數組的部分內容替換掉另外一個數組的內容

方法(加工):System.arraycopy(原數組名稱, 原數組開始點, 目標數組名稱, 目標數組開始點, 拷貝長度)
范例: 實現數組拷貝

原數組A:1、2、3、4、5、6、7、8、9;

原數組B:11、22、33、44、55、66、77、88、99;

替換後的數組A:1、55、66、77、5、6、7、8、9;

 public class ArrayDemo {
	public static void main(String args[]) {
		int dataA[] = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9};
		int dataB[] = new int[] {11, 22, 33, 44, 55, 66, 77, 88, 99};
		System.arraycopy(dataB, 4, dataA, 1, 3);
		printArray(dataA);
	}
	//定義一個專門進行數組輸出的方法
	public static void printArray(int temp[]) {
		for (int i = 0; i < temp.length; i++) {
			System.out.print(temp[i] + "、");
		}
		System.out.println();
	}
} 

這些基本的數組操作隻能夠作為邏輯玩玩,開發用不上。

數組數據統計

現在假設給你一個數組,要求可以統計該數組的最大值、最小值、平均值、總和。這種操作肯定是要通過循環的操作形式完成。

范例: 基本實現

public class ArrayDemo {
	public static void main(String args[]) {
		int data[] = new int[] {1, 2, 3, 4, 66, 5, 6, 7, 8, 9};
		int max = data[0];
		int min = data[0];
		int sum = 0;
		for(int x = 0; x < data.length; x++) {
			sum += data[x];
			if(data[x] > max) 
				max = data[x];
			if(data[x] < min)
				min = data[x];
		}
		System.out.println("最大值:" + max);
		System.out.println("最小值:" + min);
		System.out.println("數據總和:" + sum);
		System.out.println("平均值:" + (double)sum/data.length);
	}
}

此時確實實現瞭所需要的功能,但是隨之會發現主方法中的代碼有些多。主方法實際上就相當於一個客戶端調用,那麼既然是客戶端調用,裡面的代碼應該也越簡單越好。

范例: 改進代碼

public class ArrayDemo {
	public static void main(String args[]) {
		int data[] = new int[] {1, 2, 3, 4, 66, 5, 6, 7, 8, 9};
		double result[] = stat(data);
		System.out.println("最大值:" + result[0]);
		System.out.println("最小值:" + result[1]);
		System.out.println("數據總和:" + result[2]);
		System.out.println("平均值:" + result[3]);
	}

	//此時需要返回的數據一共有四個,那麼一個方法隻能夠返回一種數據類型,所以應該使用數組返回
	//數組[0]為最大值、數組[1]為最小值、數組[2]為數據總和、數組[3]為平均值
	public static double[] stat(int data[]) {
		double reData[] = new double[4];
		reData[0] = data[0];
		reData[1] = data[0];
		reData[2] = data[0];
		for(int x = 1; x < data.length; x++) {
			reData[2] += data[x];
		if(data[x] > reData[0]) 
			reData[0] = data[x];
		if(data[x] < reData[1])
			reData[1] = data[x];
		}
		reData[3] = reData[2] / data.length;
		return reData;
	}
}

在整個進行程序開發的時候,主方法不要涉及到過於復雜的邏輯程序,隻需要關註結果。

總結

到此這篇關於Java中數組的定義和使用的文章就介紹到這瞭,更多相關Java數組的定義和使用內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: