柚子快報激活碼778899分享:Java——數(shù)組的定義和使用
柚子快報激活碼778899分享:Java——數(shù)組的定義和使用
目錄
1.什么是數(shù)組
2.創(chuàng)建數(shù)組
3.數(shù)組的使用
3.1獲取數(shù)組長度
3.2遍歷數(shù)組
3.3數(shù)組作為方法的參數(shù)
3.4數(shù)組作為參數(shù)的返回值
4.數(shù)組轉(zhuǎn)字符串
5.數(shù)組拷貝
5.1Arrays.copyOf(arr,arr.length)
5.2Arrays.copyOfRange(arr,2,6)
1.什么是數(shù)組
數(shù)組就是具有相同屬性的集合,在生活中,如一個班級可以看成一個數(shù)組,他的每一個元素都是學生。而數(shù)組是具有相同數(shù)據(jù)類型的元素的集合
為什么要使用數(shù)組呢?
有人會說,我想要什么數(shù)據(jù)類型直接定義不就完了,我們要使用數(shù)組呢?
打個比方,在疫情防控期間,是對每一個人進行管理好,還是對某個集體進行管理好,當然是集體。所以通過數(shù)組我們能更好的管理更多的數(shù)。
2.創(chuàng)建數(shù)組
// 動態(tài)初始化
數(shù)據(jù)類型[] 數(shù)組名稱 = new 數(shù)據(jù)類型 [] { 初始化數(shù)據(jù) };
// 靜態(tài)初始化
數(shù)據(jù)類型[] 數(shù)組名稱 = { 初始化數(shù)據(jù) };
代碼示例:
int []arr=new int []{1,2,3,4,5,6};
int []arr={1,2,3,4,5,6,7};
注意事項:?1.靜態(tài)初始化的時候, 數(shù)組元素個數(shù)和初始化數(shù)據(jù)的格式是一致的.
? ? ? ? ? ? ? ? ?2.以上兩種數(shù)組在創(chuàng)建是數(shù)組的大小就是初始化元素個數(shù)
除以上兩種創(chuàng)建數(shù)組以外,還可以創(chuàng)建一個指定大小的數(shù)組,不進行初始化,系統(tǒng)會自動將其初始化為0.
int []arr=new int[100];
3.數(shù)組的使用
3.1獲取數(shù)組長度
//格式
數(shù)組名.length
//示例
arr.length
注意:
1. 使用 arr.length 能夠獲取到數(shù)組的長度. . 這個操作為成員訪問操作符.
2. 使用 [ ] 按下標取數(shù)組元素. 需要注意, 下標從 0 開始計數(shù)
3. 使用 [ ] 操作既能讀取數(shù)據(jù), 也能修改數(shù)據(jù).
4. 下標訪問操作不能超出有效范圍 [0, length - 1] , 如果超出有效范圍, 會出現(xiàn)下標越界異常
5.使用數(shù)組一定要謹防下標越界
3.2遍歷數(shù)組
傳統(tǒng)遍歷for()
for (int i = 0; i < arr.length ; i++) {
System.out.print(arr[i]+" ");
}
新型遍歷foreach()
for (int x:arr) {
System.out.println(x+" ");
}
3.3數(shù)組作為方法的參數(shù)
示例:
public static void print(int []arr){
for (int x:arr) {
System.out.println(x+" ");
}
}
public static void main(String[] args) {
int []arr={1,2,3,3,43,2,34,2,2,31,2,31,2,3,1,1};
print(arr);
}
1.int[] a 是函數(shù)的形參, int[] arr 是函數(shù)實參.
2.如果需要獲取到數(shù)組長度, 同樣可以使用 a.length.
3.4數(shù)組作為參數(shù)的返回值
讓數(shù)組的每一個元素乘2
// 直接修改原數(shù)組
class Test {
public static void main(String[] args) {
int[] arr = {1, 2, 3};
transform(arr);
printArray(arr);
}
public static void printArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
public static void transform(int[] arr) {
for (int i = 0; i < arr.length; i++) {
arr[i] = arr[i] * 2;
}
}
}
這個代碼固然可行, 但是破壞了原有數(shù)組. 有時候我們不希望破壞原數(shù)組, 就需要在方法內(nèi)部創(chuàng)建一個新的數(shù)組, 并由方法返回出來.
// 返回一個新的數(shù)組
class Test {
public static void main(String[] args) {
int[] arr = {1, 2, 3};
int[] output = transform(arr);
printArray(output);
}
public static void printArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
public static int[] transform(int[] arr) {
int[] ret = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
ret[i] = arr[i] * 2;
}
return ret;
}
}
這樣的話就不會破壞原有數(shù)組了,另外由于數(shù)組是引用類型,返回的時候只是將這個數(shù)組的首地址返回給函數(shù)調(diào)用者, 沒有拷貝數(shù)組內(nèi)容, 從而比較高效.
4.數(shù)組轉(zhuǎn)字符串
public static void main(String[] args) {
int []arr={1,12,21,12,12,1,2};
String newArr= Arrays.toString(arr);
System.out.println(newArr);
}
Arrays.toString()是將數(shù)組轉(zhuǎn)字符串,返回類型為字符串
用一個字符串變量接收就行
5.數(shù)組拷貝
5.1Arrays.copyOf(arr,arr.length)
public static void main(String[] args) {
int []arr={1,2,3,4,5,6,7,8,9};
int []newArr=Arrays.copyOf(arr,arr.length);
for (int x:newArr) {
System.out.print(x+" ");
}
}
Arrays.copyOf(數(shù)組名,拷貝元素的個數(shù))
拷貝的返回值需要用一個新的數(shù)組來接收
5.2Arrays.copyOfRange(arr,2,6)
public static void main(String[] args) {
int []arr={1,2,3,4,5,6,7,8,9};
int []newArr=Arrays.copyOfRange(arr,2,6);
for (int x:newArr) {
System.out.print(x+" ");
}
}
Arrays.copyOfRange(數(shù)組名,拷貝開始位置,拷貝結(jié)束位置);
拷貝的返回值需要用一個新的數(shù)組來接收
注意事項: 相比于 newArr = arr 這樣的賦值, copyOf 是將數(shù)組進行了 深拷貝, 即又創(chuàng)建了一個數(shù)組對象, 拷貝原有 數(shù)組中的所有元素到新數(shù)組中. 因此, 修改原數(shù)組, 不會影響到新數(shù)組.
柚子快報激活碼778899分享:Java——數(shù)組的定義和使用
精彩文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。