Как исправить ошибку в коде. Index 6 out of bounds for length 6
import java.util.*;
public class Main
{
public static void main(String[] args) {
int[] arr = {1,0,3,3,3,5,12,3,0,7}; // length = 10
int n = 3;
int count = 0;
for(int i = 0; i < arr.length; i++){
if(arr[i] == n){
count++;
}
}
int[] arr2 = new int[arr.length - count]; // length = 6
for(int i = 0; i < arr.length; i++){
if(arr[i] != n){
arr2[i] = arr[i];
}
}
System.out.println(Arrays.toString(arr2));
}
}
Ответы (2 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Тут задаётся одна длина массива
new int[arr.length - count];
а тут цикл совершенно по другой:
i < arr.length;
Автор решения: Виталий Злобин
→ Ссылка
for(int i = 0; i < arr.length; i++)
замени на
for(int i = 0; i < arr2.length; i++)