1. 程式人生 > >Java第七章:陣列

Java第七章:陣列

一陣列的特點: 1.陣列是一種引用型別。 2.陣列當中的多個數據,型別必須統一。 3.陣列的長度在執行期間不可改變

陣列的初始化:在記憶體當中建立一個數組,並且向其中賦予一些預設值

二兩種常見的初始化方式 1.動態初始化(指定了長度) 2.靜態初始化(指定了內容)

1.動態初始化陣列的格式: 資料型別【】陣列名稱=new 資料型別【陣列長度】 解釋含義: *左側資料型別:*也就是陣列當中的儲存資料,全都是統一的什麼 型別。 *左側的中括號:*代表我是一個數組。 *左側陣列名稱:*給陣列去一個名字 *左側的new:*代表建立陣列的動作。 *右側資料型別:*必須和左側的資料型別保持一致。 *右側中括號的長度:*也就是陣列當中,到底可以儲存多少個數據,是一個int數字。

2.靜態初始化陣列的格式: 資料型別【】陣列名稱=new 資料型別【】{元素1,元素2,元素…}

簡化格式: 資料型別【】陣列名稱={元素1,元素2,元素…}

注意事項 1.靜態初始化陣列沒有指定長度,但是仍然能自動推算到長度。 2.靜態初始化標準格式可以拆分成為兩個步驟。 3.動態初始化標準格式也可以拆分成為兩個步驟。 4.靜態初始化一旦使用簡化格式就不能。

使用建議: 如果不確定陣列當中的具體內容,用動態初始化。否則:已經確定了具體內容,用靜態初始化。

索引值: 就是int數字,代表陣列當中的元素編號【注意:索引值從0開始,直到“陣列長度-1”為止】

作業 1.顯示商品名稱: package x303_20181025; import java.util.Scanner; public class num1 { public static void main(String[] args) { Scanner scanner = new Scanner(

System.in); String[] num1 = new String[5]; for (int i = 0; i < num1.length; i++) { System.out.println(“本次活動特價商品有:”); String commodity = scanner.next(); num1[i] = commodity; } for (int i = 0; i < num1.length; i++) { System.out.println(num1[i]); } } }

2.迴圈輸出數列的值,並進行猜數字遊戲。 package x303_20181025; import java.util.Scanner; public class num3 { public static void main(String[] args) { int num1 = 0; Scanner scanner = new Scanner(

System.in); int[] num = new int[7]; for (int i = 0; i < num.length; i++) { System.out.print(“請輸入資料:”); int data = scanner.nextInt(); num[i] = data; num1 = num1 + data; } System.out.println(""); System.out.print(“猜數字遊戲:”); int numbre = scanner.nextInt(); for (int i = 0; i < num.length; i++) { if (numbre == (num[i])) { System.out.println(“數列中包含次數”); break; } } System.out.println(“數列中不包含次數”); } }

3.購物金額結算: package x303_20181025; import java.util.Scanner; public class num2 { public static void main(String[] args) { double num=0; Scanner scanner = new Scanner(System.in); System.out.println(“請輸入會員本月的消費記錄:”); double[] num1 = new double[5]; for (int i = 0; i < num1.length; i++) { System.out.print(“請輸入第” + (i + 1) + “筆購物金額:”); double manny = scanner.nextDouble(); num1[i]=manny; num = num+manny; } System.out.println(""); for (int i = 0; i < num1.length; i++) { System.out.println(“序號:”+(i+1)+""+“消費金額”+(num1[i])); } System.out.println(“總金額是:”+num); } }

4.將一組亂序的字元進行排序,並進行升序和降序。 package x303_20181025; import java.util.Arrays; public class num4 { public static void main(String[] args) { String[] num = { “a”, “c”, “u”, “b”, “e”, “f”, “e”, “z” }; Arrays.sort(num); System.out.print(“升序為:”); for (int i = 0; i < num.length; i++) { System.out.print(num[i]); } System.out.println(""); System.out.print(“降序為:”); for(int i=num.length;i>0;i–){ System.out.print(num[i-1]); } } }

5.一組有序的字元序列,向次字元序列中插入一個新的字元,要求插入新的之後字元序列仍保持不亂。 package x303_20181025; public class num5 { public static void main(String[] args) { char[] num = new char[9];

	num[0] = 'a';
	num[1] = 'b';
	num[2] = 'c';
	num[3] = 'e';
	num[4] = 'f';
	num[5] = 'p';
	num[6] = 'u';
	num[7] = 'z';

	System.out.print("原字元序列:");
	for (int i = 0; i < num.length; i++) {
		System.out.print(num[i] + " ");
	}				
	int nuvel = num.length; // 儲存新增成績插入位置
	char a = 'm';
	System.out.println("\n待插入的字元是: " + a);
	// 找到新元素的插入位置
	for (int i = 0; i <num.length; i++) {
		if (a < num[i]) {
			nuvel  = i;
			break;
		}
	}
	// 元素後移
	for (int j = num.length - 1; j > nuvel; j--) {
		num[j] = num[j - 1]; // index下標開始的元素後移一個位置
	}
	num[nuvel] =a;// 插入資料
	System.out.println("插入字元的下標是:" + nuvel);
	System.out.print("插入後的字元序列是: ");
	for (int k = 0; k < num.length; k++) { // 迴圈輸出目前陣列中的資料
		System.out.print(num[k] + " ");
	}
}

}

6.求最低價格: package x303_20181025; import java.util.Scanner; public class num6 { public static void main(String[] args) { int[] num = new int[4]; Scanner scanner = new Scanner(System.in); System.out.println(“請輸入4家店的價格”); System.out.println(""); for (int i = 0; i < 4; i++) { System.out.print(“請輸入” + (i + 1) + “家店的價格:”); int manny = scanner.nextInt(); num[i]=manny; } int min = num[0]; for (int i = 0; i < num.length; i++) { if(num[i] < min){ min = num[i]; } } System.out.println(“最小值是:”+min); } }

課本作業 1.依次輸入五句話後將它們逆序輸出 package x303_20181025; import java.util.Arrays; import java.util.Scanner; public class num7 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); char[]num=new char[5]; num[0]=‘青’; num[1]=‘春’; num[2]=‘夢’; num[3]=‘工’; num[4]=‘場’; System.out.println(“逆序輸出五句話:”); for(int i=num.length;i>0;i–){ System.out.println(num[i-1]); } } }

2.假設一個長度為5的陣列,進行升序排列 package x303_20181025; import java.util.Arrays; public class num8 { public static void main(String[] args) { int[] num = { 1, 3, -1, 5, -2 }; System.out.print(“原陣列數為:”); for (int i = 0; i < num.length; i++) { System.out.print(num[i] + " “); } System.out.println(”"); System.out.print(“升序陣列為:”); Arrays.sort(num); System.out.println(Arrays.toString(num)); } }

3.用鍵盤輸入十個個位數字,合法數字為1. 2.或3,不是這三個數字則為非法數字,程式設計統計每個合法數字和非法數字的個數。 package x303_20181025; import java.util.Scanner; public class num9 { public static void main(String[] args) { int one = 0; int two = 0; int three = 0; int illegal = 0; int[] num = new int[10]; Scanner scanner = new Scanner(System.in); System.out.println(“輸入的10個個位數為:”); for (int i = 0; i < 10; i++) { int number = scanner.nextInt(); num[i] = number; } for (int i = 0; i < num.length; i++) { System.out.print(num[i] + " “); if (num[i] == 1) { one++; } else if (num[i] == 2) { two++; } else if (num[i] == 3) { three++; } else if (num[i] != 1 && num[i] != 2 && num[i] != 3) { illegal++; } } System.out.println(”"); System.out.println(“數字1的個數為:” + one); System.out.println(“數字2的個數為:” + two); System.out.println(“數字3的個數為:” + three); System.out.println(“非法的個數為:” + illegal); // 簡單法:System.out.println(“非法數字為”+(10-one-two-three)); } }