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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

沒有合適的添加方法

沒有合適的添加方法

慕斯709654 2021-11-24 19:04:09
我正在運行以下代碼。但是當我這樣做時我收到了這個錯誤currentSumPairs.add(sumPair)List<List<Integer>> quadrupules = new ArrayList<List<Integer>>();Map<Integer, List<int[]>> pairs = new HashMap<Integer, List<int[]>>();      List<int[]> sumPair = new ArrayList<int[]>();sumPair.add(new int[]{1, 2});if (pairs.containsKey(0)) {    List<int[]> currentSumPairs = pairs.get(0);    currentSumPairs.add(sumPair);    pairs.put(0, currentSumPairs);} else {        pairs.put(0, sumPair);} 這給出了以下錯誤:沒有找到適合 add(List) 的方法
查看完整描述

3 回答

?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

由于 sumPair 是一個列表,它應該是

currentSumPairs.addAll(sumPair);


查看完整回答
反對 回復 2021-11-24
?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

小加成

使用泛型與數組,例如List<int[]>,非常不兼容,因此非常不鼓勵,因為它可能導致災難性的結果。這可能會導致您真的不想遇到的所有類型的錯誤和失敗。

正如 Joshua Bloch 在他的書“Effective Java”中提到的,至少數組和泛型的任何組合都是不需要的,因為它們有很大的不同。

首先,數組是協變的。[..] 相比之下,泛型是不變的。

例如

說到數組,這是一段完全合法的代碼,它會順利編譯。但是如果您嘗試SubObject在數組中持久化,它會在運行時失敗。

    SuperObject[] arrayOfCustomObjects = new SubObject[1] // Fails at runtime, throws ArrayStoreException

在這種情況下List,泛型是不變的,不會讓創(chuàng)建子類型的列表實例在編譯時失敗。它必須是完全相同的類型。

   List<SuperObject> listOfCustomObjects = new ArrayList<SubObject> // Won't compile, must be the same types, fail-fast

數組被具體化。這意味著數組在運行時知道并強制執(zhí)行它們的元素類型。[..]

相比之下,泛型是通過擦除實現的。這意味著它們僅在編譯時強制執(zhí)行它們的類型約束,并在運行時丟棄(或擦除)它們的元素類型信息。擦除允許泛型類型與不使用泛型的遺留代碼自由互操作,確保在 Java 5 中平滑過渡到泛型。

由于這些根本差異,數組和泛型不能很好地混合。例如,創(chuàng)建泛型類型、參數化類型或類型參數的數組是非法的。

Joshua Bloch,“Effective Java”(第 3 版)

有關更多信息,請查看“Effective Java”


查看完整回答
反對 回復 2021-11-24
?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

currentSumPairssumPair是的類型List<int[]>。該.add()方法需要int[]。你不能添加List<int[]>代替int[]它們不一樣。

我認為你正在尋找addAll(...)方法。

currentSumPairs.addAll(sumPair);


查看完整回答
反對 回復 2021-11-24
  • 3 回答
  • 0 關注
  • 178 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號