Java核心基礎第4篇-Java陣列的常規操作
Java陣列
一、陣列簡介
- 陣列是多個相同型別資料的組合,實現對這些資料的統一管理
- 陣列屬引用型別,陣列型資料是物件(Object)
- 陣列中的元素可以是任何資料型別,包括基本型別和引用型別
- 陣列型別是單一,只能存放相同型別的資料
- 陣列一旦建立,大小就是固定的
- 陣列中每個元素都有自己的位置(下標),從0開始
所以陣列一般用來存放大小固定的資料:例如存放班級學生成績
int scores = {100,90,98,99,88,80}
二、建立陣列
關鍵陣列的關鍵字:[]
int [] a
和 int a[]
含義是一樣的,[]
和變數名
前後是沒有關係的。
2.1 只申明不賦值
type [] var;或者 type var [] ;
例如:
int score[];
int [] score;
Object [] obj; //Object是java語法中老祖宗
2.2 申明並賦值
type [] var = new type[size]; //建立的是資料,陣列的元素為空。值預設的就是該型別的預設值
type [] var = {elm,elem2,elem3,…} //建立的同時,把資料也賦值了
public static void main(String[] args) {
// 申明 預設值
int score[] = new int[9];
for(int i = 0;iscore.length;i++) {
System.out.print(score[i]+"t");
}
System.out.println("------------");
//建立並且賦值
int score2[] = {100,90,88,85,66};
for(int i = 0;iscore2.length;i++) {
System.out.print(score2[i]+"t");
}
2.3 new陣列記憶體模型
new:java中的關鍵字,主要作用用來在記憶體中,開闢新的空間,從而建立新的物件
2.4 下標操作元素
2.4.1 透過下標給元素賦值
int score[] = new int[9];
//指定元素賦值
score[2] = 10;
score[5] = 50;
2.4.2 透過下標獲取元素內容
int num2 = score[2];
System.out.println("num2="+num2);
for(int i = 0;iscore.length;i++) {
System.out.print(score[i]+"t");
}
2.5 注意事項
- Java中使用關鍵字 new 建立陣列物件
- 定義並用運算子 new 為之分配空間後,才可以引用陣列中的每個元素;
- 陣列元素的引用方式:陣列名[陣列元素下標]
- 陣列元素下標可以是整型常量或整型表示式。如a[3] , b[i] , c[6*i];
- 陣列元素下標從0開始;長度為n的陣列合法下標取值範圍: 0 - n-1;如int a[]=new int[3]; 可引用的陣列元素為a[0]、a[1]、a[2]
- 每個陣列都有一個屬性 length 指明它的長度,例如:a.length 指明陣列 a 的長度(元素個數)
三、遍歷陣列
遍歷陣列可以透過下標,或者增強foreach迴圈來進行元素的遍歷
3.1 普通for迴圈
因為可以使用arr[index]
方式訪問元素,所以我們可以透過arr.length
來迴圈獲取不同索引的值;
但是注意:索引的範圍是:0-(length-1)
,不能大於等於length
因為下標是從0
開始計算。不然丟擲陣列越界異常
int score[] = {100,90,88,85,66};
for(int i = 0;iscore.length;i++) {
System.out.println(score2[i]);
}
以上就是將score陣列中所有的元素遍歷了一次,並列印出來
3.2 增強for迴圈
Java有一種功能很強的迴圈結構,可以用來依次處理陣列中的每個元素而不必為指定下標值而分心。
這種增強的for迴圈的語句格式為:
for(variable : arr)statement
例如:
int score[] = {100,90,88,85,66};
for(int ele:score){
System.out.println(ele);
}
這種語法和上面普通的for迴圈達到的效果是一樣的。這種for each
迴圈語句顯得更加簡潔、更不易出錯
四、陣列複製
如果希望將一個陣列的所有值複製到一個新的陣列中去,就要使用Arrays類的copyOf方法:
第2個引數是新陣列的長度。這個方法通常用來增加陣列的大小
int score[] = {100, 90, 88, 85, 66};
//長度超過原資料的部分:使用預設0替代
int[] newArr01 = Arrays.copyOf(score, 10);
//長度不足的,從前往後取對應的資料
int[] newArr02 = Arrays.copyOf(score, 3);
System.out.println("原陣列 = " + Arrays.toString(score));
System.out.println("新陣列1 = " + Arrays.toString(newArr01));
System.out.println("新陣列2 = " + Arrays.toString(newArr02));
注意事項:
- 如果陣列元素是數值型,那麼多餘的元素將被賦值為0;
- 如果陣列元素是布林型,則將賦值為false。
- 相反,如果長度小於原始陣列的長度,則只複製最前面的資料元素。
五、陣列排序
5.1 Arrays工具類排序
java.util.Arrays:屬於工具類,所以在使用之前,必須先導包
public static void main(String[] args) { int score [] = {99,89,78,88,69,70}; String ch[] = {"B","C","A","F","D"}; System.out.println("排序前:"); for (int i = 0; i ch.length; i++) { System.out.print(ch[i]+"t"); } System.out.println(); //進行排序 //1.只提供了升序排序 從小到大 沒有提供降序。自己去實現 //2.也叫做自然順序。 A(65) B(66) C(67) D(68) Arrays.sort(ch); System.out.println("排序後:"); for (int i = 0; i
4.2 透過演算法實現排序(冒泡)
升序為例:
- 將相鄰的兩個數,進行比較,將大的資料往後移動。依次迴圈進行比較,從而找到最大的資料
- 由於每一次迴圈只能確定一個資料,所以需要多次巢狀迴圈來完成最終的排序
- 詳細如下圖
public static void main(String[] args) { int score [] = {99,89,78,88,69,70}; //i=0 {89,78,88,69,70,99}; //i=1 {78,88,69,70,89,99}; //i=2 {78,69,70,88,89,99}; System.out.println("第原始的結果:"); for (int j = 0; j score[j+1]) { //兩兩互換,透過臨時變數 int temp = score[j]; score[j] = score[j+1]; score[j+1] = temp; } } System.out.println("第"+(i+1)+"次執行的結果:"); for (int j = 0; j
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1747/viewspace-2797068/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 初識Java(Java陣列-陣列的基本操作)Java陣列
- JAVA基礎--二維陣列Java陣列
- Java核心基礎第3篇-Java流程控制Java
- 【Java基礎知識】Java陣列與集合Java陣列
- java基礎(十) 陣列型別Java陣列型別
- 零基礎學Java(8)陣列Java陣列
- 【Java基礎】--演算法與陣列Java演算法陣列
- 第81節:Java中的陣列Java陣列
- 6-Java基礎語法-陣列之一維陣列Java陣列
- Java操作Json陣列JavaJSON陣列
- 【java基礎】--Java列舉Java
- Java陣列操作的10大方法Java陣列
- ?Java基礎之Java列舉Java
- Java基礎-異常Java
- Java基礎 — 異常Java
- [Java基礎]異常Java
- Java基礎筆記09-陣列簡介Java筆記陣列
- java基礎學習之七:陣列型別Java陣列型別
- java基礎操作2Java
- Java基礎--列舉Java
- 【java基礎】列舉Java
- Java 陣列、Java 日期時間、Java 正規表示式、Java 方法Java陣列
- Java基礎(四)——switch語句、一維陣列、二維陣列的定義、儲存、遍歷、常見問題Java陣列
- 流程控制與陣列—Java基礎學習(二)陣列Java
- java基礎:Exception異常JavaException
- mongodb基礎整理篇————常規操作[二]MongoDB
- Java的 陣列Java陣列
- IO流下:位元組流、流操作規律(java基礎)Java
- java基礎:enum列舉Java
- Java安全基礎之Java Web核心技術JavaWeb
- Java基礎學習之陣列基本屬性和方法Java陣列
- java日期 java陣列Java陣列
- Java基礎知識——異常Java
- Java基礎 ---Throwable異常類Java
- 【Java基礎】--異常處理Java
- Java 陣列Java陣列
- java——陣列Java陣列
- Java陣列Java陣列