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

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

為什么我的 Arraylist 一直在打印 [3,2]?

為什么我的 Arraylist 一直在打印 [3,2]?

胡子哥哥 2022-12-28 16:17:09
我正在嘗試從整數(shù)數(shù)組中刪除值的每個實例,并返回新整數(shù)數(shù)組的長度。輸入為 [3,2,2,3],val 為 3。輸出應(yīng)為 [ 2,2],長度為 2。我不斷得到 [3,2],但我正在通過數(shù)組刪除 val。    class Solution {        public int removeElement(int[] nums, int val) {            ArrayList<Integer> list = new ArrayList<Integer>();             for(int i = 0; i < nums.length; i++) {            list.add(nums[i]);            }            if(list.isEmpty()) {            return 0;            }            for(int i = 0; i < list.size(); i++) {                if(list.get(i) == val) {                list.remove(i);                }            }            return list.size();        }   }
查看完整描述

3 回答

?
江戶川亂折騰

TA貢獻(xiàn)1851條經(jīng)驗 獲得超5個贊

當(dāng)您刪除前 3 個時,您將擁有 i=0,接下來數(shù)組列表將調(diào)整大小,因此當(dāng)您刪除時,您需要執(zhí)行 i - -。


class Solution {

        public int removeElement(int[] nums, int val) {


            ArrayList<Integer> list = new ArrayList<Integer>(); 


            for(int i = 0; i < nums.length; i++) {

            list.add(nums[i]);

            }


            if(list.isEmpty()) {

            return 0;

            }


            for(int i = 0; i < list.size(); i++) {

                if(list.get(i) == val) {

                list.remove(i);

                i--;

                }

            }

            return list.size();

        }

   }


查看完整回答
反對 回復(fù) 2022-12-28
?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊

您根本不需要調(diào)用 remove(像您一樣刪除時,沒關(guān)系,但是例如,如果您在 foreach 循環(huán)中執(zhí)行此操作,它會在 . 上崩潰ConcurrentModificationException。相反,您可以確定是否將 item 添加到結(jié)果中列出或不在第一個for循環(huán)內(nèi)(我認(rèn)為這更安全):


ArrayList<Integer> list = new ArrayList<Integer>(); 

for(int i = 0; i < nums.length; i++) {

    if (nums[i] != val) {

        list.add(nums[i]);

    }

}

return list.size();

(我知道這不能直接回答你的問題)


查看完整回答
反對 回復(fù) 2022-12-28
?
三國紛爭

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

您沒有顯示任何打印代碼,但我假設(shè)您nums根據(jù)此方法返回的數(shù)字進(jìn)行打印。這意味著您永遠(yuǎn)不會nums以任何方式進(jìn)行更改,只需從那里打印前 n 個數(shù)字。您需要返回修改后的數(shù)組,而不僅僅是長度。



查看完整回答
反對 回復(fù) 2022-12-28
  • 3 回答
  • 0 關(guān)注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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