欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于傳遞list類(lèi)型的參數(shù)的問(wèn)題

 更新時(shí)間:2023年11月30日 15:15:04   作者:wj振藩  
這篇文章主要介紹了基于傳遞list類(lèi)型的參數(shù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

傳遞list類(lèi)型的參數(shù)問(wèn)題

java中除了基礎(chǔ)的數(shù)據(jù)類(lèi)型是值傳遞外,其它類(lèi)型都是對(duì)象,也就是引用類(lèi)型(地址傳遞),這個(gè)就不多說(shuō)了

今天遇到一個(gè)問(wèn)題,就是在多次添加同一個(gè)list對(duì)象到另一個(gè)list里的時(shí)候,為什么會(huì)添加多少次list對(duì)象,外面這層list的大小就有多少呢,都是相同的地址?。?!

這段代碼

先把一個(gè)list作為參數(shù)傳遞到另一個(gè)list類(lèi)型的add函數(shù)中

public class Main{
    public static void main(String[] args) {
        List<List<Integer>> lists = new ArrayList<>();
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        lists.add(list);
        print(lists);
        list.clear();
        list.add(3);
        lists.add(list);
        print(lists);
    }
    public static void print(List<List<Integer>> lists){
        System.out.println("開(kāi)始打印");
        for(List<Integer> list : lists){
            for(Integer num : list){
                System.out.println(num);
            }
        }
    }
}

輸出結(jié)果

這段代碼可以看出,第一次打印時(shí) list里的值是1和2(對(duì)應(yīng)的lists里的值也只有1和2,因?yàn)閘ists里有一個(gè)list);

第一次打印完后,把list清空后添加3,這個(gè)時(shí)候list里值只有3,但是這個(gè)時(shí)候可以看到第二次的打印 lists的值有兩個(gè)3(因?yàn)槔锩嬗袃蓚€(gè)list),

而且這兩個(gè)list存值的地方是同一個(gè)地址,在調(diào)用list.clear()的時(shí)候,list所在的地址里的值就變成空的了,并沒(méi)有出現(xiàn)其中一個(gè)list的值是1,2;另一個(gè)list的值是3。

這端代碼調(diào)用了兩次lists.add(),所以lists里面存儲(chǔ)了兩個(gè)List類(lèi)型的值,而恰好這兩個(gè)List都是list,它們的值都是由同一個(gè)地址存儲(chǔ)的。

感覺(jué)這里我的解釋有點(diǎn)描述不清楚。。。。。。

因?yàn)?strong>我想描述的不是list是怎么傳遞的,而是為什么第二次打印會(huì)出現(xiàn)兩次3

對(duì)于引用傳遞的例子,添加兩行代碼就會(huì)看得很清晰:

  • print函數(shù)內(nèi)的末尾添加一句參數(shù)lists.clear()
  • main函數(shù)的最后在添加一句print()函數(shù)
public class Main{
    public static void main(String[] args) {
        List<List<Integer>> lists = new ArrayList<>();
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        lists.add(list);
        print(lists);
        list.clear();
        list.add(3);
        lists.add(list);
        print(lists);
        print(lists);//這是新加的一行
    }
    public static void print(List<List<Integer>> lists){
        System.out.println("開(kāi)始打印");
        for(List<Integer> list : lists){
            for(Integer num : list){
                System.out.println(num);
            }
        }
        lists.clear();//這是新加的一行
    }
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 利用spring-boot-maven-plugin插件打包SpringBoot應(yīng)用方式

    利用spring-boot-maven-plugin插件打包SpringBoot應(yīng)用方式

    spring-boot-maven-plugin插件可以將SpringBoot應(yīng)用打成帶依賴的jar包,該包中不僅包含應(yīng)用自身的代碼,還包含了pom.xml中配置的依賴,修改pom.xml打包后,生成的jar包就包含了項(xiàng)目依賴,生成的jar包位于項(xiàng)目的target文件夾下
    2025-02-02
  • 關(guān)于Mysql的四種存儲(chǔ)引擎

    關(guān)于Mysql的四種存儲(chǔ)引擎

    這篇文章主要介紹了關(guān)于Mysql的四種存儲(chǔ)引擎,MySql的核心就是存儲(chǔ)引擎,不同的存儲(chǔ)引擎提供不同的存儲(chǔ)機(jī)制、索引技巧、鎖定水平等功能,使用不同的存儲(chǔ)引擎,還可以 獲得特定的功能,需要的朋友可以參考下
    2023-05-05
  • 詳解基于Spring Cloud幾行配置完成單點(diǎn)登錄開(kāi)發(fā)

    詳解基于Spring Cloud幾行配置完成單點(diǎn)登錄開(kāi)發(fā)

    這篇文章主要介紹了詳解基于Spring Cloud幾行配置完成單點(diǎn)登錄開(kāi)發(fā),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • SpringBoot實(shí)現(xiàn)攔截器、過(guò)濾器、監(jiān)聽(tīng)器過(guò)程解析

    SpringBoot實(shí)現(xiàn)攔截器、過(guò)濾器、監(jiān)聽(tīng)器過(guò)程解析

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)攔截器、過(guò)濾器、監(jiān)聽(tīng)器過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 詳解SpringBoot+Dubbo集成ELK實(shí)戰(zhàn)

    詳解SpringBoot+Dubbo集成ELK實(shí)戰(zhàn)

    這篇文章主要介紹了詳解SpringBoot+Dubbo集成ELK實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • nacos中的配置使用@Value注解獲取不到值的原因及解決方案

    nacos中的配置使用@Value注解獲取不到值的原因及解決方案

    這篇文章主要介紹了nacos中的配置使用@Value注解獲取不到值的原因分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Hibernate5新特性介紹

    Hibernate5新特性介紹

    hibernate5中有了一些新的變動(dòng),下面腳本之家小編把Hibernate5新特性相關(guān)知識(shí),分享到腳本之家平臺(tái),感興趣的朋友參考下吧
    2017-09-09
  • Spring Boot環(huán)境屬性占位符解析及類(lèi)型轉(zhuǎn)換詳解

    Spring Boot環(huán)境屬性占位符解析及類(lèi)型轉(zhuǎn)換詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot環(huán)境屬性占位符解析及類(lèi)型轉(zhuǎn)換的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • SpringBoot整合atomikos實(shí)現(xiàn)跨庫(kù)事務(wù)的詳細(xì)方案

    SpringBoot整合atomikos實(shí)現(xiàn)跨庫(kù)事務(wù)的詳細(xì)方案

    這篇文章主要介紹了SpringBoot整合atomikos實(shí)現(xiàn)跨庫(kù)事務(wù),業(yè)務(wù)主要涉及政府及企業(yè)且并發(fā)量不大,所以采用XA事務(wù),雖然性能有所損失,但是可以保證數(shù)據(jù)的強(qiáng)一致性,需要的朋友可以參考下
    2022-06-06
  • Java數(shù)組的遍歷與求和知識(shí)點(diǎn)

    Java數(shù)組的遍歷與求和知識(shí)點(diǎn)

    本篇文章給大家總計(jì)了Java數(shù)組的遍歷與求和的知識(shí)點(diǎn)以及需要注意的地方,需要的朋友參考學(xué)習(xí)下。
    2018-02-02

最新評(píng)論