1. 程式人生 > 實用技巧 >常用的資料結構—陣列

常用的資料結構—陣列

原文連結:常用的資料結構

常用的資料結構—陣列

陣列對於每一門程式語言來說都是重要的資料結構之一,當然不同語言對陣列的實現及處理也不盡相同。

Java 語言中提供的陣列是用來儲存固定大小的同類型元素。

你可以宣告一個數組變數,如 numbers[100] 來代替直接宣告 100 個獨立變數 number0,number1,....,number99。

要使用Java的陣列,必須經過以下兩個步驟。
(1) 宣告陣列。
(2) 分配記憶體給該陣列。

一維陣列

這兩個步驟的語法如下。

資料型別  陣列名[];       // 宣告一維陣列
資料型別[]  陣列名;		 // 宣告一維陣列
陣列名 = new 資料型別[個數]; //分配記憶體給陣列

// 另外一種建立陣列的方法
資料型別[] 陣列名 = {value0, value1, ..., valuek};

注意: 建議使用 資料型別[]  陣列名 的宣告風格宣告陣列變數。 資料型別  陣列名[] 風格是來自 C/C++ 語言 ,在Java中採用是為了讓 C/C++ 程式設計師能夠快速理解java語言。

例項1:

package cn.coder306;

public class Main {
	public static void main(String[] args) {
        //建立陣列 語法:資料型別[] 陣列名 = {value0, value1, ..., valuek};
        int [] numbers = {10, 20, 30, 40, 50};
		readNumbers(numbers);
	}
	
	// 讀數字
	public static void readNumbers(int[] numbers) {
		for(int n :  numbers) {
            if(n == 30){
                // 跳出迴圈
                break;
            }
			System.out.println("數字:" + i);
		}
	}
}

例項2:

有一個int型別的購物車,需要給這個存放車子所有物品的序號。

package cn.coder306;

public class Main {
	public static void main(String[] args) {
        //建立陣列 語法:資料型別[] 陣列名 = new 資料型別[個數];
        int[] car = new int[10];
		
		for(int i = 0 ;i < car.length; i++) {
			car[i] = i;
		}
	}
}

多維陣列

多維陣列可以看成是陣列的陣列,比如二維陣列就是一個特殊的一維陣列,其每一個元素都是一個一維陣列,例如:

String str[][] = new String[3][4];

語法:

資料型別  陣列名[][];       // 宣告二維陣列
資料型別[][]  陣列名;		 // 宣告二維陣列
陣列名 = new 資料型別[個數][個數]; //分配記憶體給陣列

// 另外一種建立二維陣列的方法
資料型別[][] 陣列名 = {{value0, value1, ..., valuek},{value0, value1, ..., valuek}....};

例項:

要求使用二維碼陣列按照座位順序記錄班級所有學生成績,班級只有4排2列

package cn.coder306;

public class Main {
	public static void main(String[] args) {
        // 班級分數記錄二維陣列
		int[][] scores = new int[2][];
		
        // 第一排分數
		int[] col1 = new int[4];
		col1[0] = 78;
		col1[1] = 79;
		col1[2] = 67;
		col1[3] = 80;
		
        // 第二批分數
		int[] col2 = new int[4];
		col2[0] = 98;
		col2[1] = 99;
		col2[2] = 100;
		col2[3] = 95;
		
		scores[0] = col1;
		scores[1] = col2;
	}
}

陣列操作

對比兩個陣列對應位置元素值是否相同

package cn.coder306;

public class Main {
	public static void main(String[] args) {
		
		int[] col1 = new int[4];
		col1[0] = 78;
		col1[1] = 79;
		col1[2] = 67;
		col1[3] = 80;
		
		int[] col2 = new int[4];
		col2[0] = 98;
		col2[1] = 99;
		col2[2] = 100;
		col2[3] = 95;
		
		boolean result = equalsArrays(col1, col2);
		System.out.println(result);
	}
	
	/**
	 * 對比陣列是否相同
	 * @param col1
	 * @param col2
	 * @return
	 */
	public static boolean equalsArrays(int[] col1,int[] col2) {
		//先判斷陣列長度是否一致
		if(col1.length != col2.length) {
			return false;
		}
		
		// 判斷元素值是否相同
		for(int i  = 0;i < col1.length ; i++) {
			if(col1[i] != col2[i]) {
				return false;
			}
		}
		return true;
	}
}

思考題:

完成陣列int[] col1 = {78,30,50,49,80}進行排序?

查詢陣列int[] col1 = {78,30,50,49,80}中80的位置?

深入探討可以加筆者QQ:1120855315
點選獲取免費Java免費視訊
新增QQ群837949026可以領取更多學習資料