亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

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

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

胡子哥哥 2022-12-28 16:17:09
我正在嘗試從整數數組中刪除值的每個實例,并返回新整數數組的長度。輸入為 [3,2,2,3],val 為 3。輸出應為 [ 2,2],長度為 2。我不斷得到 [3,2],但我正在通過數組刪除 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貢獻1851條經驗 獲得超5個贊

當您刪除前 3 個時,您將擁有 i=0,接下來數組列表將調整大小,因此當您刪除時,您需要執行 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();

        }

   }


查看完整回答
反對 回復 2022-12-28
?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

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


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();

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


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

TA貢獻1804條經驗 獲得超7個贊

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



查看完整回答
反對 回復 2022-12-28
  • 3 回答
  • 0 關注
  • 151 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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