JavaSE基礎入門(二)
陣列
陣列是一種特殊的資料結構,它是由同一型別的資料組成的大小固定的有序的集合。陣列的大小是固定的,不能改變。存入陣列的資料是有序的,通過下標來訪問指定位置的資料。
1、陣列的宣告與初始化
//宣告一個int型別的陣列
int[] arr1;
//宣告一個String型別的陣列
String arr2[];
由上可見,宣告一個陣列有兩種方式:一是在陣列元素型別(int)後面加"[]"符號,二是在陣列名(arr2)後面加"[]"符號,兩種方式均能宣告一個陣列。陣列元素型別確定了該陣列中能存入的資料型別。
2、陣列的初始化
陣列的初始化也分為兩種,分別為靜態初始化和動態初始化。靜態初始化表示在宣告陣列的時候,已經確定了陣列裡面的資料以及陣列的大小;動態初始化則在宣告時,只確定陣列的大小,而陣列裡面的資料,則通過後續新增。
//靜態初始化陣列
int[] arr1 = {1,2,3,4};
String arr2[] = new String[]{"a","b","c"};
//動態初始化陣列
int arr3[] = new int[3];
arr3[0]=1;
arr3[1]=2;
arr3[2]=3;
System.out.println(arr1);
System.out.println(arr2);
System.out.println(arr3);
執行結果如下:
[I@1540e19d
[Ljava.lang.String;@677327b6
[I@14ae5a5
由上面可以看出,初始化陣列之後,對其直接列印,只能得到一個地址值,而無法獲得陣列裡面的資料如需獲得陣列中的資料,則需要對陣列進行遍歷。
3、陣列的遍歷
如果陣列的資料很少,可以直接通過 arr[i] 的方式來一個資料一個資料的獲取,當然了,這個方法不僅效率慢,而且還很 low,我們可以通過迴圈的方式來獲取陣列中的資料。
//遍歷arr1
for(int i = 0;i < 4;i++){
System.out.print(arr1[i]+" ");
}
//假設不知道陣列的長度可以呼叫陣列的 length 屬性,獲得陣列的長度
for (int i = 0;i < arr3.length;i++){
System.out.print(arr3[i]+" ");
}
執行結果如下:
1 2 3 4
1 2 3
4、陣列的排序
public static void main(String[] args) {
//1、定義一個陣列
int[] arr = {3,5,7,4,2,1};
//3、呼叫px方法
px(arr);
}
//2、定義一個排序方法
public static void px(int arr[]){
//定義一個空值,用於交換資料位置
int temp = 0;
for (int i = 0; i < arr.length; i++) {
//巢狀迴圈,將每個數和第一個數比較
for(int j = i+1;j<arr.length;j++){
//比較第一個數與其後面的數
if(arr[i]>arr[j]){
//如果第一個數大於第二個數,將其互換位置
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for(int i = 0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
程式碼執行結果如下:
1 2 3 4 5 7
5、工具類Arrays
陣列的遍歷和排序,其實可以藉助陣列工具類 Arrays 來簡化實現。
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
int[] arr = {4,2,8,6,1};
//toString()方法可以等效for迴圈,將陣列中的資料輸出
System.out.println(Arrays.toString(arr));
//sort()方法可以將陣列中的資料按從小到大的順序排序
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
}
sort()方法是將資料從小到大排序,我不知道 Arrays 工具類中是否有從大到小或者反轉的方法, 希望有大神告知一下!
6、陣列的異常
java.lang.ArrayIndexOutOfBoundsException
索引越界異常,是由於陣列的索引從 0 開始,所以一個陣列的索引應該比陣列的長度少 1 ,出現這種異常都是訪問的索引大於等於陣列的長度。
java.lang.NullPointerException
空指標異常,這個異常是由於陣列動態初始化之後,沒有給陣列新增資料,就要訪問陣列裡面的資料,就會報錯。
結語
由於是剛學Java,有什麼錯誤或者缺少了什麼,請指正,萬分感謝!
相關文章
- JavaSE基礎知識分享(二)Java
- HTML入門基礎(二)HTML
- 2.TypeScript 基礎入門(二)TypeScript
- JavaSE基礎:字串Java字串
- JavaSE基礎: 介面Java
- Javase—java基礎Java
- Python基礎知識入門(二)Python
- Python基礎入門筆記(二)Python筆記
- Python入門基礎知識(二)Python
- JavaSE基礎:集合類Java
- JavaSE基礎:日期操作Java
- JavaSE基礎:泛型Java泛型
- JavaSE基礎:陣列Java陣列
- JavaSE基礎:抽象類Java抽象
- JavaSE基礎知識分享(二)相關練習題Java
- JavaSE的基礎語法Java
- JavaSE基礎:Collections工具類Java
- JavaSE基礎:包裝類Java
- JavaSE基礎:Arrays工具類Java
- 資料視覺化-svg入門基礎(二)視覺化SVG
- RabbitMQ基礎入門MQ
- mongodb基礎入門MongoDB
- MySQL 基礎入門MySql
- ZooKeeper 基礎入門
- Elasticsearch 基礎入門Elasticsearch
- Vim 入門:基礎
- Bootstrap基礎入門boot
- Html基礎入門HTML
- ElasticSearch基礎入門Elasticsearch
- HTML 基礎入門HTML
- Dart 基礎入門Dart
- SQL入門基礎SQL
- Nginx 基礎入門Nginx
- Kafka基礎入門Kafka
- Redis入門基礎Redis
- Java 入門基礎Java
- Maven入門基礎Maven
- JavaScript入門基礎JavaScript