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

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

通過列表數(shù)組的Java復(fù)雜迭代

通過列表數(shù)組的Java復(fù)雜迭代

慕妹3242003 2021-05-30 19:14:18
我想遍歷列表數(shù)組中的重復(fù)數(shù)字組,并在組更改時(shí)執(zhí)行某些操作。我的問題是當(dāng)下一組包含相同的數(shù)字時(shí),如何將兩組分開?例如,我在一個(gè)數(shù)組中3,3,3,10,10,10,10,10,10,10,10,10,10,5,5,5,5,5 有以下數(shù)字: 總是有 3 個(gè)三分球和十個(gè)十分球等。但是如果我有 3,3,3,3,3,3兩組三分,我就會(huì)變得不卡。一種(某種)有效的解決方案是:List<Integer> changeOfTableCell = new ArrayList<Integer>();changeOfTableCell.add(3);changeOfTableCell.add(3);changeOfTableCell.add(3);changeOfTableCell.add(10);changeOfTableCell.add(10);changeOfTableCell.add(10);changeOfTableCell.add(10);changeOfTableCell.add(10);changeOfTableCell.add(10);changeOfTableCell.add(10);changeOfTableCell.add(10);changeOfTableCell.add(10);changeOfTableCell.add(10);changeOfTableCell.add(5);changeOfTableCell.add(5);changeOfTableCell.add(5);changeOfTableCell.add(5);changeOfTableCell.add(5);int startCounter=changeOfTableCell.get(0);int counter=0;for(int a=0; a<changeOfTableCell.size(); a++) {     if(startCounter==changeOfTableCell.get(counter)) { //the start of the group        for(int i=0; i<startCounter; i++) { //print the group as per the size of the group            System.out.println(changeOfTableCell.get(counter));            counter=counter+1;        }        //move the start of the next group        startCounter=changeOfTableCell.get(counter)        System.out.println("Break");//do something here    }}計(jì)數(shù)器變?yōu)?18,這給了我一個(gè)索引越界異常。解決方案對我來說并不明顯,它一直讓我發(fā)瘋!
查看完整描述

3 回答

?
飲歌長嘯

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

在您的第二個(gè) for 循環(huán)之后,您應(yīng)該有一個(gè) if 保護(hù)來保護(hù)最后一次迭代。這哪里是時(shí)間counter等于的大小List,因?yàn)閮?nèi)部的for循環(huán)的最后一次迭代的加1計(jì)數(shù)器


if(counter < changeOfTableCell.size()){

  startCounter=changeOfTableCell.get(counter);

}

或者更確切地說是終止


if(counter >= changeOfTableCell.size()) break;

startCounter=changeOfTableCell.get(counter);


查看完整回答
反對 回復(fù) 2021-06-02
?
繁星點(diǎn)點(diǎn)滴滴

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

計(jì)數(shù)器變?yōu)?18 并拋出 IndexOutOfBoundsException,因?yàn)樗?code>counter正在跟蹤它已迭代的元素?cái)?shù)量。打印出列表中的最后一個(gè)值后,startCounter嘗試獲取第 18 個(gè)索引處的元素,該元素不存在(列表為 0 索引)。要修復(fù)它,請執(zhí)行條件語句以檢查是否counter已經(jīng)在第 18 個(gè)索引處。


查看完整回答
反對 回復(fù) 2021-06-02
?
慕絲7291255

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

這是我想出的解決方案:


public class CounterTest {


public static void main(String[] args) {


    List<Integer> changeOfTableCell = new ArrayList<Integer>();

    changeOfTableCell.add(3);

    changeOfTableCell.add(3);

    changeOfTableCell.add(3);

    changeOfTableCell.add(10);

    changeOfTableCell.add(10);

    changeOfTableCell.add(10);

    changeOfTableCell.add(10);

    changeOfTableCell.add(10);

    changeOfTableCell.add(10);

    changeOfTableCell.add(10);

    changeOfTableCell.add(10);

    changeOfTableCell.add(10);

    changeOfTableCell.add(10);

    changeOfTableCell.add(5);

    changeOfTableCell.add(5);

    changeOfTableCell.add(5);

    changeOfTableCell.add(5);

    changeOfTableCell.add(5);

    int start=0;

    int length=changeOfTableCell.get(0);



    for(int a=0; a<changeOfTableCell.size(); a++){


    for(int i=start; i<length; i++) {


        System.out.println(changeOfTableCell.get(start));


    }if(length==changeOfTableCell.size()){

        System.out.println("Do something ");break;

        }else start=length; length=length+changeOfTableCell.get(start);

            System.out.println("Do something ");

}

}


}


查看完整回答
反對 回復(fù) 2021-06-02
  • 3 回答
  • 0 關(guān)注
  • 189 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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