第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Android mutableListof(pair(k,v) --> 如果我清除變量

Android mutableListof(pair(k,v) --> 如果我清除變量

LEATH 2023-11-01 21:18:43
我將 mutableListOf 與pair() 一起使用,但我不明白它是如何工作的以及為什么工作。var x = mutableListOf<Pair<String, ArrayList<Long>>>()val y= ArrayList<Long>()val testNumber : Long = 5  y.add(testNumber )x.add(Pair("testString",testNumber))Log.i(TAG, "$x")  //--> x = [testString,[5]]y.clear()Log.i(TAG, "$x")  // --> x = [testString,[]]  so my testNumber value is empty
查看完整描述

1 回答

?
qq_花開(kāi)花謝_0

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊

首先,您輸入的代碼不應(yīng)編譯,因?yàn)閜air接受ArrayList并且您輸入了long。現(xiàn)在考慮這是一個(gè)拼寫(xiě)錯(cuò)誤,并且在您的代碼中,您在 x 的對(duì)中輸入了 y 而不是 testNumber,您已經(jīng)在對(duì)中添加了對(duì) Arraylist 的引用。并且 y 和您對(duì)中的引用指向同一內(nèi)存位置的同一對(duì)象。因此,當(dāng)您清除 y 時(shí),該內(nèi)存位置的數(shù)據(jù)將被清除。而且由于您的對(duì)也指向已被清除的相同內(nèi)存位置,因此您得到了空數(shù)據(jù)。這就像用他的正式姓名和昵稱來(lái)稱呼一個(gè)人一樣,因?yàn)閮烧叨贾赶蛲粋€(gè)人。


解決方案應(yīng)該是在將 y 添加到對(duì)之前先復(fù)制 y 并將該副本添加到該對(duì)中。嘗試


x.add(Pair("testString",ArrayList(y))

或者您可以手動(dòng)對(duì) y 進(jìn)行深層復(fù)制,然后將其輸入到 x 中


查看完整回答
反對(duì) 回復(fù) 2023-11-01
  • 1 回答
  • 0 關(guān)注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)