數組的概述數組
1 、數組能夠當作多個相同類型數據組合,對這些數據的統一管理;spa
2 、數組變量屬於引用類型,數組也能夠當作是對象,數組中的每個元素至關於該對象的成員變量;code
3 、數組中的元素能夠使任意的數據類型,包括基本類型和引用類型。對象
一維數組的聲明blog
1 、數組的聲明方式:索引
1)、數據類型[] 變量名;內存
如:double[] scores; String[] names;ci
2)、數據類型 變量名[]; 字符串
如:double scores[]; String name[];input
通常狀況下都是用第一種方式聲明數組,格式明顯。
二、初始化數組:
1)、數據類型[] 變量名={直接賦值};
如:int[] number = {1,2,’A’};
2)、數據類型[] 變量名 = new 數據類型[長度];
如:int[] number = new int[5];
3)、數據類型[] 變量名 = new 數據類型[]{賦值};
如:int[] number = new int[]{1,2,3}
4)、先聲明後初始化,通常只能用第二種和第三種方式,就是先在內存空間中開闢一塊內存空間才能使用;
如:int[] num; num = new int[5]; 或者: int[] num; num = new int[]{1,2,3};
三、數組的訪問:
1)、根據下標或索引去查找,數組下標從0開始;
2)、整型int數組若是沒有賦值默認值爲0;字符串默認值爲null;double和float默認值爲0.0;char、byte和short型默認值爲0(這三種類型的數據將自動升級成整型數據類型,故默認值爲0);boolean型默認值爲false;
3)、數組訪問不能超出數組的長度減1;超出下標將會報數組下標越界的錯誤;
4)、經過變量名.length來獲取數組的長度。
示例代碼:
一、向一個有序數組中插入輸入的數據,插入後的數組仍然是一個有序數組
1 public class InsertNumToArray { 2 3 public static void main(String[] args) { 4 System.out.println("請輸入一個整數:"); 5 Scanner sc = new Scanner(System.in); 6 int number = sc.nextInt(); 7 8 int[] num = { 19, 29, 39, 49, 59, 69, 79, 89, 99 }; 9 int[] nums = new int[num.length + 1]; 10 int insertIndes = 0; 11 for (int i = 0; i < num.length; i++) { 12 if (num[i] > number) { 13 insertIndes = i; 14 break; 15 }else{ 16 // if(i == num.length - 1){ 17 // insertIndes = i + 1; 18 // } 19 insertIndes = num.length; 20 } 21 } 22 23 for (int j = 0; j < nums.length; j++) { 24 if (j >= insertIndes) { 25 if (j == insertIndes){ 26 nums[j] = number; 27 } 28 if (j + 1 < nums.length){ 29 nums[j + 1] = num[j]; 30 } 31 } else { 32 nums[j] = num[j]; 33 } 34 } 35 36 for (int i = 0; i < nums.length; i++) { 37 System.out.print(nums[i] + " "); 38 } 39 40 } 41 42 }
關於二維數組問題,二維數組其實就是將數組當中的每個元素都是數組組成的集合。
具體可參考下面的部分代碼示例:
1 private static void searchCity() { 2 String[] citys = { "四川", "雲南", "浙江", "江蘇" }; 3 String[][] message = new String[][] { { "成都", "綿陽", "自貢" }, { "麗江", "大理", "昆明" }, { "杭州", "嘉興", "溫州", "寧波" }, 4 { "蘇州", "張家港", "南京" } }; 5 6 for (int i = 0; i < citys.length; i++) { 7 System.out.print(i + 1 + "、" + citys[i] + "\0"); 8 } 9 10 System.out.println(); 11 System.out.println("請輸選擇省份對應的序號:"); 12 Scanner input = new Scanner(System.in); 13 int number = input.nextInt(); 14 15 System.out.println("您選擇的省份是: " + citys[number - 1] + "省\n可選擇的城市以下所示:"); 16 for (int i = 0; i < message[number - 1].length; i++) { 17 System.out.print(i + 1 + "、" + message[number - 1][i] + "\0"); 18 } 19 20 System.out.println(); 21 System.out.println("請選擇對應的城市序號:"); 22 int cityNumber = input.nextInt(); 23 System.out.println("您選擇的是:" + citys[number - 1] + "省" + message[number - 1][cityNumber - 1]); 24 } 25 26 /** 27 * 猜數字 28 */ 29 private static void guessTheNumber() { 30 int number = 20; 31 System.out.println("請輸入一個數字:"); 32 Scanner sc = new Scanner(System.in); 33 boolean isGuess = false; 34 do { 35 int guessNum = sc.nextInt(); 36 if (guessNum == number) { 37 System.out.println("恭喜你猜對了!"); 38 isGuess = true; 39 } else if (guessNum > number) { 40 System.out.println("您猜的數字大了,從新輸入:"); 41 isGuess = false; 42 } else { 43 System.out.println("您猜的數字小了,從新輸入:"); 44 isGuess = false; 45 } 46 } while (!isGuess); 47 }