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