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

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

為什么我得到 - ArrayIndexOutOfBoundsException: 5?

為什么我得到 - ArrayIndexOutOfBoundsException: 5?

侃侃爾雅 2023-02-23 18:02:42
我有兩個(gè)排序數(shù)組。我需要將它們連接到一個(gè)新的排序數(shù)組中:    int[] arr1 = {1,2,3,6,8};    int[] arr2 = {4,5,9,12,208,234};    printArr(allSort(arr2,arr1));}public static int[] allSort(int[] arr, int[] arr3) {    int[] newArr = new int[arr.length + arr3.length];    int j = 0;    int k = 0;    for (int i = 0; i < newArr.length - 1; i++) {        if(j == arr3.length){            newArr[i] = arr[k];            k++;        }        if(k == arr.length){            newArr[i] = arr3[j];            j++;        }        if(arr[k] > arr3[j]){            newArr[i] = arr3[j];            j++;        } else if (arr[k] < arr3[j]) {            newArr[i] = arr[k];            k++;        }    }    return newArr;}我試圖構(gòu)建一個(gè)長(zhǎng)度等于兩個(gè)數(shù)組加在一起的長(zhǎng)度的數(shù)組,然后在其上運(yùn)行一個(gè)循環(huán)。但是,此代碼返回錯(cuò)誤:AArrayIndexOutOfBoundsException: 5。
查看完整描述

3 回答

?
MYYA

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

只需像這樣在兩個(gè) if 條件中添加 continue,


if(j == arr3.length){

  newArr[i] = arr[k];

  k++;

  continue;

}

if(k == arr.length){

  newArr[i] = arr3[j];

  j++;

  continue;

}

所以不管怎樣,另一個(gè)循環(huán)已經(jīng)完成,這就是我們迭代并添加所有值的原因,這樣它就不需要檢查所有其他條件,所以我們可以跳過(guò)它。


還,


for (int i = 0; **i < newArr.length**; i++)

由于您正在檢查“<”。


查看完整回答
反對(duì) 回復(fù) 2023-02-23
?
函數(shù)式編程

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

ArrayIndexOutOfBoundsException()是一個(gè)異常,它的基本意思是在某些時(shí)候您試圖訪(fǎng)問(wèn)具有非法索引的數(shù)組元素。

在某些時(shí)候查看您的代碼后,這里是索引的值:

http://img1.sycdn.imooc.com/63f739f60001786b01400028.jpg

在循環(huán)中,您arr[k]使用 k = 5進(jìn)行調(diào)用if(arr[k] > arr3[j]),這arr是一個(gè)長(zhǎng)度為 5 的數(shù)組,因此最大索引為 4,這就是為什么您會(huì)遇到越界異常的原因。


查看完整回答
反對(duì) 回復(fù) 2023-02-23
?
神不在的星期二

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

您的主要問(wèn)題是第一個(gè)陣列完成時(shí)的控制。


我對(duì)您的代碼進(jìn)行了一些調(diào)整,現(xiàn)在可以正常工作了。


public static void main(String[] args) {

    int[] arr1 = { 1, 2, 3, 6, 8 };

    int[] arr2 = { 4, 5, 9, 12, 208, 234 };


    int[] newArr = allSort(arr1, arr2);


    for (int i = 0; i <= newArr.length - 1; i++) {

        System.out.println(" " + newArr[i]);

    }

}


public static int[] allSort(int[] arr1, int[] arr2) {

    int j = 0;

    int k = 0;

    boolean endArr1 = false;

    int[] newArr = new int[arr1.length + arr2.length];


    for (int i = 0; i <= newArr.length - 1; i++) {

        if (arr1[k] < arr2[j] && !endArr1) {

            System.out.println("k: " + k + " " + arr1.length);

            newArr[i] = arr1[k];

            if(k < arr1.length-1)

                k++;

            else

                endArr1 = true;

       } else if (arr2[j] < arr1[k]  || endArr1) {

           System.out.println("j: " + j + " " + arr2.length);

           newArr[i] = arr2[j];

           if(j < arr2.length-1)

               j++;

         }

    }

    return newArr;

}


查看完整回答
反對(duì) 回復(fù) 2023-02-23
  • 3 回答
  • 0 關(guān)注
  • 196 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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