Java數(shù)組和可變參數(shù)使用舉例詳解
1.數(shù)組的概述
數(shù)組指的是一種容器,可以用來存儲同種數(shù)據(jù)類型的多個(gè)值
數(shù)組容器在存儲數(shù)據(jù)的時(shí)候,需要結(jié)合隱式轉(zhuǎn)換來考慮,建議容器的類型和存儲的數(shù)據(jù)類型保持一致
2.數(shù)組的定義
格式一:
數(shù)據(jù)類型[] 數(shù)組名 int [] arra
格式二:
數(shù)據(jù)類型 數(shù)組名 [] int array[]
比如:
int[] a = new int[]{};
int b[] = new int[]{};一般格式一使用的多。
3.數(shù)組的靜態(tài)初始化
完整格式:
數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[] {元素1,元素2,.....};
簡化格式:數(shù)據(jù)類型[] 數(shù)組名 = {};
測試:
int[] a = new int[]{1,2,3};
// 簡寫
int[] b = {1,2,3};4.獲取數(shù)組里的元素
格式:
組名[索引/下標(biāo)] 注意數(shù)組下標(biāo)從0開始
測試:
int[] a = new int[]{1,2,3};
// 簡寫
int[] b = {1,2,3};
int q = b[0];
System.out.println(q);5.把數(shù)據(jù)存儲到數(shù)組當(dāng)中
格式:
數(shù)組名[索引] = 具體數(shù)據(jù)/變量
測試;
// 簡寫
int[] b = {1,2,3};
b[0] = 100;
System.out.println(b[0]); // 100其實(shí)就是覆蓋,一旦覆蓋后,原來的數(shù)據(jù)就不存在
6.數(shù)組遍歷
兩種方法,即普通for和for-each
視情況使用。
int[] b = {1,2,3};
// 普通for
for (int i = 0; i < b.length; i++) {
System.out.println(b[i]);
}
// for-each,不能操作索引
for (int i : b) {
System.out.println(i);
}7.數(shù)組的動態(tài)初始化
格式:
數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[數(shù)組的長度]
在創(chuàng)建的時(shí)候,由我們自己指定數(shù)組的長度,由虛擬機(jī)給出默認(rèn)的初始化值
數(shù)組默認(rèn)初始化值的規(guī)律:
整數(shù)類型:默認(rèn)初始化值0
小數(shù)類型:默認(rèn)初始化值0.0
字符類型:默認(rèn)初始化值'/u0000' 空格
布爾類型:默認(rèn)初始化值false
引用數(shù)據(jù)類型:默認(rèn)初始化值null
測試:
package org.example;
public class Test {
public static void main(String[] args) {
int[] a = new int[5];
for (int i : a) {
System.out.println( i);
}
}
}
結(jié)果:

8.數(shù)組常見問題
當(dāng)訪問了數(shù)組中不存在的索引,就會引發(fā)索引越界異常
比如修改for循環(huán)條件:
int[] b = {1,2,3};
// 普通for
for (int i = 0; i <= b.length; i++) {
System.out.println(b[i]);
}
結(jié)果:

9.可變參數(shù)
9.1.語法
可變參數(shù):方法的形參的個(gè)數(shù)是可以發(fā)生變化的,是一個(gè)數(shù)組
格式:
屬性類型...名字
細(xì)節(jié):
在方法的形參中最多只能寫一個(gè)可變參數(shù)
可變參數(shù)必須放在形參的最后
public class Test {
public static void main(String[] args) {
int[] a = new int[]{1, 2, 3};
test1(a);
}
public static void test1(int...arr){
for (int i : arr) {
System.err.println(i);
}
}
}
正常輸出123
你提供的代碼片段非常典型,它展示了可變參數(shù)的基本用法。下面我將為你詳細(xì)解析數(shù)組和可變參數(shù)的區(qū)別,以及為什么我們需要可變參數(shù)。
可變參數(shù)(Varargs)本質(zhì)上是編譯器提供的一種“語法糖”。
在方法內(nèi)部,可變參數(shù) int... arr 完全被當(dāng)作一個(gè) int[] arr 數(shù)組來處理。可以對它進(jìn)行遍歷、獲取長度等操作,就像操作普通數(shù)組一樣。
編譯器在編譯時(shí),會自動將可變參數(shù)轉(zhuǎn)換為數(shù)組類型。
但是可變參數(shù)想對于數(shù)組較靈活,可以傳入多個(gè)獨(dú)立參數(shù),也可以直接傳入一個(gè)數(shù)組。
public class Test {
public static void main(String[] args) {
int[] a = new int[]{1, 2, 3};
test1();
test1(1,2,3);
}
public static void test1(int...arr){
for (int i : arr) {
System.err.println(i);
}
}
}結(jié)果:

9.2.可變參數(shù)的優(yōu)勢
1.避免繁瑣的數(shù)組創(chuàng)建
在沒有可變參數(shù)之前,如果你想調(diào)用一個(gè)方法處理一組不確定的數(shù)字,比如計(jì)算 1, 2, 3, 4, 5 的和,你必須寫成 sum(new int[]{1, 2, 3, 4, 5})。這非常冗長。
有了可變參數(shù),你可以直接寫成 sum(1, 2, 3, 4, 5)。
2.替代大量的重載方法
假設(shè)你需要一個(gè)方法來打印不同數(shù)量的參數(shù),在沒有可變參數(shù)時(shí),你可能需要寫一堆重載方法:
// 沒有可變參數(shù)時(shí),需要大量重載
void print(int a) { ... }
void print(int a, int b) { ... }
void print(int a, int b, int c) { ... }
// ... 以此類推,代碼冗余且難以維護(hù)使用可變參數(shù),一個(gè)方法就能搞定所有情況:
// 使用可變參數(shù),一個(gè)方法即可
void print(int... numbers) { ... }總結(jié)
到此這篇關(guān)于Java數(shù)組和可變參數(shù)的文章就介紹到這了,更多相關(guān)Java數(shù)組和可變參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringCloud Zuul過濾器實(shí)現(xiàn)登陸鑒權(quán)代碼實(shí)例
這篇文章主要介紹了SpringCloud Zuul過濾器實(shí)現(xiàn)登陸鑒權(quán)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
java報(bào)錯(cuò):找不到或無法加載主類的解決方法簡單粗暴
本文主要介紹了java報(bào)錯(cuò):找不到或無法加載主類的解決方法簡單粗暴,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
SpringBoot項(xiàng)目打包為JAR文件的實(shí)現(xiàn)
本文主要介紹了SpringBoot項(xiàng)目打包為JAR文件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-09-09
java Struts2框架下實(shí)現(xiàn)文件上傳功能
這篇文章主要為大家詳細(xì)介紹了java Struts2框架下實(shí)現(xiàn)文件上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
java獲取nvidia顯卡信息的實(shí)現(xiàn)示例
現(xiàn)在的需求是要獲取nvidia顯卡的使用情況,本文主要介紹了java獲取nvidia顯卡信息的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02
為什么程序中突然多了 200 個(gè) Dubbo-thread 線程的說明
這篇文章主要介紹了為什么程序中突然多了 200 個(gè) Dubbo-thread 線程的說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09

