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

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

壓縮 ArrayList 方法中的錯誤

壓縮 ArrayList 方法中的錯誤

慕姐4208626 2024-01-05 15:04:38
我正在嘗試用 Java 編寫一個方法來壓縮字符串的 ArrayList。例如,如果我們有一個由 String 組成的 ArrayList ["0", "1", "2", "3"],則會ArrayListMethods.condense(["0", "1", "2", "3"])將 ArrayList 更改為["01", "23"]。import java.util.ArrayList;public class ArrayListMethods{  public static void condense(ArrayList<String> array){        for (int i = 0; i < array.size(); i++){            array.get(i) += array.get(i + 1);            array.remove(i + 1);        }  }}我收到錯誤,但我不知道為什么。沒關系,問題解決了。我像這樣重寫了代碼:public static void condense(ArrayList<String> array){        for (int i = 0; i < array.size() - 1; i++){            String one = array.get(i);            String two = array.get(i+1);            String both = one+two;            array.set(i, both);            array.remove(i + 1);        }    }
查看完整描述

2 回答

?
幕布斯6054654

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

如果你確定元素的數量總是偶數,你可以這樣做:


public static void condense(ArrayList<String> array){

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

        array.set(i, array.get(i)+array.get(i + 1));

        array.remove(i + 1);

    }

}

更好的方法是這樣的:


public static void condense2(List<String> list){

    int groupSize = 2;

    List<String> result = new ArrayList<>();        

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

        result.add(String.join("", list.subList(i,Math.min(i + groupSize, list.size()))));            

    }

    System.out.println(result);

}

使用第二種方法,您不僅限于連接兩個字符串,通過更改 groupSize 您可以實現類似的["012", "345", "6"]輸入["0","1","2","3","4","5","6"]


查看完整回答
反對 回復 2024-01-05
?
滄海一幻覺

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

array.get(i) 不是變量,它是String在您的情況下返回的方法調用。您無法為其分配任何內容。

你可能想要類似的東西array.set(i, array.get(i + 1))


查看完整回答
反對 回復 2024-01-05
  • 2 回答
  • 0 關注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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