學習重點
一維陣列多維陣列(陣列內含有陣列,形成多層結構)列表(java.util.ArrayList類)陣列的宣告
int [] id;//宣告陣列名稱為id &資料型態為int
id = new int[3];//確保陣列能保存的內容數
也可以寫成一行
int [] id = new int[3];
也可以直接指定內容
int [] id = {1,2,3};
或是利用index值填入資料如下:
id[0] = 1;
id[1] = 2;
id[2] = 3;
在陣列的第一個位置填入1,第二個位置填入2,第三個位置填入3
用length方法調查陣列長度
int size = id.length;
此案例的size會等於3
建立Sample2_1.java練習看看
編譯後執行,可能會發現"str的長度為:"這行變成亂碼
這是因為CMD環境的編碼不一致
如果只想暫時性改變CMD環境編碼,可使用以下指令
chcp 950
※chcp = chang code page。950是繁體中文的號碼,utf-8則是65001。
此設定在關閉畫面之後就會恢復為預設值。
疑問:不知道為什麼,編譯時用utf-8編譯,CMD環境也設為utf-8,執行時中文卻還是顯示亂碼。非得設成繁體中文才行。(使用指令chcp 950)
如果想永久修改CMD環境編碼
1.Win+R,輸入regedit開啓登錄檔編輯器
2.找到HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor
3.右鍵新建一個字串值(S),取名叫Autorun,值設為@chcp 950>nul
延伸1-陣列預設值
建立Sample2_2.java
以上的代碼由於i雖然被宣告了,但裏面沒有值所以會報錯。
把以下這行註解掉再試一次
//System.out.println("i的值為:" + i);
會發現array[0]雖然沒有指定值,但是自動被預設為0了。
這是因為在new一個陣列時,會先自動填入預設值。
多維陣列
建立Sample2_3.java檔案並寫入以下內容
依照下面的步驟將java檔編譯後執行,就跟之前做的一樣。
如果怕忘記或找不到指令,可以用記事本記起來。
cd C:\Users\userXXX\Desktop\java //移動到案件資料夾
javac -encoding utf-8 Sample2_3.java //編譯(使用utf-8以避免中文亂碼)
java Sample2_3 //執行
基本上多維陣列的概念就跟windows的資料夾一樣,
每個資料夾裏面都可能還有不定數量的資料夾或檔案。
再看一個範例:
這個示例説明了創建數組時,不一定要一次把所有條件都指定好。而且每個數組的長度也可以不一樣。可以先規定好數組的大小後,一一賦值,也可以直接創立數組並賦值。本案例就用了/*和* /符號把一開始三行的代碼註釋掉。直接創立數組並賦值.
列表
JAVA利用java.util.ArrayList類實現了可變長的列表功能。
方才的陣列長度是固定不可變的,例如:
這行程式碼就確保了記憶體中,預留了3個保存int資料的空間。不能增加也不能減少。
但ArrayList類可以。
工具類
JAVA裏面有很多既有的工具類可使用,ArrayList類就是其中一種。要使用這些工具,需要先import。
像是把工具從倉庫拿到工作台來一樣。
ArrayList的使用流程如下:
import java.util.ArrayList; //載入類ArrayList array; //宣告listarray = new ArrayList(3); //確保領域,變數名= new ArrayList<資料形式>(初期大小)array.add("Tom"); //用add方法賦值String name = array.get(0); //用get方法取值可以發現這邊賦值和取值的方式和陣列不一樣,
在JAVA的工具類中,每個類都有自己的使用方法,不會用的時候就用關鍵字google吧。
基本資料類型與物件
在新增一個ArrayList時,<>內只能存放物件,不能放int,double等基本資料型態。
像下面這行程式碼因為放了int就會報錯:
為了解決這個問題,JAVA有提供一些物件來包覆基本資料型態如下表:
利用cast指定資料類型
利用get方法取出資料時,JAVA會自動檢查來源與目標的資料型態是否可以互換。
如果無法確認來源資料是什麼類型,就會在編譯時報錯。如下例:
由於無法確認array裏面會拿出什麼東西來,所以報錯,應修改成下面的樣子:
int num = (Integer)array.get(0);
利用()來指定資料型態,像是過海關一定要填申報單一樣。
省略寫法
新建ArrayList的時候,左右都要重複寫一次資料類型很麻煩,
所以在JAVA SE7版本之後,右邊的資料類型可以省略不寫。如下例:
引數的使用
在CMD畫面執行指令的時候,可以在指令後面給予引數,告訴電腦一些額外資訊。例如檔案路徑也是引數的一種。
https://imgur.com/UI0L2Vh
在執行「java」這個指令時,第一個引數會被當成要執行的路徑或檔案名稱,
第二個以後的引數則會被傳進執行的程式裏,保存在String[] args列表裏面。
我們可以在程式裏對這些引數做一些處理。處理完的結果就跟上圖一樣。
※JAVA裏的引數預設被保存為String形式,如果要轉換成數字,可以使用以下方法
int num = Integer.parseInt(args[0]);
在CMD畫面裏有許多可以直接使用的指令,這些指令常常會需要搭配引數來使用。
我們也可以自己寫指令,就如同Sample2_5一樣,自己定義指令後面的各個引數該如何被使用。
以上是第二章陣列與列表的學習紀錄
下一章會講演算子與分歧文(if)
#Java#