最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java數(shù)組和可變參數(shù)使用舉例詳解

 更新時(shí)間:2026年05月11日 10:38:25   作者:善惡怪客  
Java中的可變參數(shù)和數(shù)組參數(shù)在使用上很相似,但它們?cè)诜椒ǘx、調(diào)用方式以及編譯處理上有明顯區(qū)別,理解這些差異有助于寫出更清晰、安全的代碼,這篇文章主要介紹了Java數(shù)組和可變參數(shù)的相關(guān)資料,需要的朋友可以參考下

1.數(shù)組的概述

數(shù)組指的是一種容器,可以用來(lái)存儲(chǔ)同種數(shù)據(jù)類型的多個(gè)值

數(shù)組容器在存儲(chǔ)數(shù)據(jù)的時(shí)候,需要結(jié)合隱式轉(zhuǎn)換來(lái)考慮,建議容器的類型和存儲(chǔ)的數(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,.....};

簡(jiǎn)化格式:數(shù)據(jù)類型[] 數(shù)組名 = {};

測(cè)試:

        int[] a = new int[]{1,2,3};
        // 簡(jiǎn)寫
        int[] b = {1,2,3};

4.獲取數(shù)組里的元素

格式:

組名[索引/下標(biāo)]  注意數(shù)組下標(biāo)從0開(kāi)始

測(cè)試:

        int[] a = new int[]{1,2,3};
        // 簡(jiǎn)寫
        int[] b = {1,2,3};
        int q = b[0];
        System.out.println(q);

5.把數(shù)據(jù)存儲(chǔ)到數(shù)組當(dāng)中

格式:

數(shù)組名[索引] = 具體數(shù)據(jù)/變量

測(cè)試;

        // 簡(jiǎn)寫
        int[] b = {1,2,3};
        b[0] = 100;
        System.out.println(b[0]); // 100

其實(shí)就是覆蓋,一旦覆蓋后,原來(lái)的數(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ù)組的動(dòng)態(tài)初始化

格式:

數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[數(shù)組的長(zhǎng)度]

在創(chuàng)建的時(shí)候,由我們自己指定數(shù)組的長(zhǎng)度,由虛擬機(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

測(cè)試:

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ù)組常見(jiàn)問(wèn)題

當(dāng)訪問(wèn)了數(shù)組中不存在的索引,就會(huì)引發(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.語(yǔ)法

可變參數(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ì)上是編譯器提供的一種“語(yǔ)法糖”

在方法內(nèi)部,可變參數(shù) int... arr 完全被當(dāng)作一個(gè) int[] arr 數(shù)組來(lái)處理??梢詫?duì)它進(jìn)行遍歷、獲取長(zhǎng)度等操作,就像操作普通數(shù)組一樣。

編譯器在編譯時(shí),會(huì)自動(dòng)將可變參數(shù)轉(zhuǎn)換為數(shù)組類型。

但是可變參數(shù)想對(duì)于數(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)勢(shì)

1.避免繁瑣的數(shù)組創(chuàng)建
在沒(méi)有可變參數(shù)之前,如果你想調(diào)用一個(gè)方法處理一組不確定的數(shù)字,比如計(jì)算 1, 2, 3, 4, 5 的和,你必須寫成 sum(new int[]{1, 2, 3, 4, 5})。這非常冗長(zhǎng)。
有了可變參數(shù),你可以直接寫成 sum(1, 2, 3, 4, 5)。

2.替代大量的重載方法
假設(shè)你需要一個(gè)方法來(lái)打印不同數(shù)量的參數(shù),在沒(méi)有可變參數(shù)時(shí),你可能需要寫一堆重載方法:

// 沒(méi)有可變參數(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于Java HashMap自動(dòng)排序的簡(jiǎn)單剖析

    關(guān)于Java HashMap自動(dòng)排序的簡(jiǎn)單剖析

    這篇文章主要給大家介紹了關(guān)于Java HashMap自動(dòng)排序的簡(jiǎn)單剖析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • SpringCloud Zuul過(guò)濾器實(shí)現(xiàn)登陸鑒權(quán)代碼實(shí)例

    SpringCloud Zuul過(guò)濾器實(shí)現(xiàn)登陸鑒權(quán)代碼實(shí)例

    這篇文章主要介紹了SpringCloud Zuul過(guò)濾器實(shí)現(xiàn)登陸鑒權(quán)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • java報(bào)錯(cuò):找不到或無(wú)法加載主類的解決方法簡(jiǎn)單粗暴

    java報(bào)錯(cuò):找不到或無(wú)法加載主類的解決方法簡(jiǎn)單粗暴

    本文主要介紹了java報(bào)錯(cuò):找不到或無(wú)法加載主類的解決方法簡(jiǎn)單粗暴,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • SpringBoot項(xiàng)目打包為JAR文件的實(shí)現(xiàn)

    SpringBoot項(xiàng)目打包為JAR文件的實(shí)現(xiàn)

    本文主要介紹了SpringBoot項(xiàng)目打包為JAR文件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-09-09
  • Mybatis中的延遲加載詳細(xì)解讀

    Mybatis中的延遲加載詳細(xì)解讀

    這篇文章主要介紹了Mybatis中的延遲加載詳細(xì)解讀,Mybatis中延遲加載又稱為懶加載,是指在進(jìn)行關(guān)聯(lián)查詢時(shí),按照設(shè)置延遲規(guī)則推遲對(duì)關(guān)聯(lián)對(duì)象的select查詢,延遲加載可以有效的減少數(shù)據(jù)庫(kù)的壓力,需要的朋友可以參考下
    2023-10-10
  • java Struts2框架下實(shí)現(xiàn)文件上傳功能

    java Struts2框架下實(shí)現(xiàn)文件上傳功能

    這篇文章主要為大家詳細(xì)介紹了java Struts2框架下實(shí)現(xiàn)文件上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 測(cè)量Java對(duì)象所占內(nèi)存大小方式

    測(cè)量Java對(duì)象所占內(nèi)存大小方式

    這篇文章主要介紹了測(cè)量Java對(duì)象所占內(nèi)存大小方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • java獲取nvidia顯卡信息的實(shí)現(xiàn)示例

    java獲取nvidia顯卡信息的實(shí)現(xiàn)示例

    現(xiàn)在的需求是要獲取nvidia顯卡的使用情況,本文主要介紹了java獲取nvidia顯卡信息的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • 為什么程序中突然多了 200 個(gè) Dubbo-thread 線程的說(shuō)明

    為什么程序中突然多了 200 個(gè) Dubbo-thread 線程的說(shuō)明

    這篇文章主要介紹了為什么程序中突然多了 200 個(gè) Dubbo-thread 線程的說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • Springboot整合Redis最簡(jiǎn)單例子分享

    Springboot整合Redis最簡(jiǎn)單例子分享

    這篇文章主要介紹了Springboot整合Redis最簡(jiǎn)單例子分享,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10

最新評(píng)論

岐山县| 缙云县| 上思县| 清苑县| 桦甸市| 甘肃省| 博兴县| 赤水市| 新营市| 遂平县| 台中县| 昌吉市| 武陟县| 新野县| 高唐县| 温泉县| 江华| 石林| 航空| 离岛区| 乐业县| 鄄城县| 义乌市| 通化市| 门头沟区| 信宜市| 荣成市| 闽清县| 陵川县| 商水县| 长治市| 仪陇县| 五台县| 钟祥市| 裕民县| 德州市| 田阳县| 瑞丽市| 高青县| 汉寿县| 东莞市|