powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка java.lang.ArrayIndexOutOfBoundsException
2 сообщений из 2, страница 1 из 1
Ошибка java.lang.ArrayIndexOutOfBoundsException
    #39710338
Iridze
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задание: вставка в массив другого массива элементов в указанное место
В строчке , где написано
Код: java
1.
 System.arraycopy(array2,0, arr,arr.length+1, array2.length);


у меня возникает ошибка
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
at java.base/java.lang.System.arraycopy(Native Method)
Я понимаю, что дело связано с индексами, но что-то не допру как исправить эту ошибку.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
package com.company;

import java.util.Arrays;
import java.util.Scanner;

public class Statfunc<T> {
    private  Object [] arr = {};
    public  void menMest(){
        for ( int i = 0; i < arr.length; i += 2 ) {
            T tmp = (T) arr[i];
            arr[i] = arr[i + 1];
            arr[i + 1] = tmp;
        }
    }
    public void add (double t){
        Object [] temp = new Object[arr.length+1];
        System.arraycopy(arr, 0,temp,0,arr.length);
        arr=temp;
        arr[arr.length-1]=t;    }

    public void addMas(int y) {
        Scanner scanner = new Scanner(System.in);
        Object array[] = new Object[y];
        Object array2[] = new Object[arr.length];
        System.out.println("ELEMENTS:");
        for (int i = 0; i < y; i++) {            array[i]= scanner.nextDouble();        }
        System.out.print("[");
        for (int i = 0; i < y; i++) {            System.out.print(array[i] + " ");        }
        System.out.println("]");
        System.out.println("WHERE");
        int x = scanner.nextInt();
        if (x == 0)
        {
          System.arraycopy(arr, 0, array2,0,arr.length);
          System.arraycopy(array,0, arr,0,array.length);
          System.arraycopy(array2,0, arr,arr.length+1, array2.length);
        }
        else if(x==arr.length+1)
        {
            for (int i = 0; i < y; i++) add((double)array[i]);    }

            else { }

        }

    @Override
    public String toString(){
        return Arrays.toString(arr);
    }
}


package com.company;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int y;
        Statfunc <Double> myList = new Statfunc <> ();
        myList.add(5.0);        myList.add(2.0);        myList.add(0.0);        myList.add(1.0);
        System.out.println(myList);
        //topic#2
        myList.menMest();
        System.out.println(myList);
        System.out.println("HOW MANY ELEMENT IN MASSIV");
        y=scanner.nextInt();
        myList.addMas(y);
        System.out.println(myList);

    }

}
...
Рейтинг: 0 / 0
Ошибка java.lang.ArrayIndexOutOfBoundsException
    #39710564
Timein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насколько я понимаю, вы пытаетесь вставить элемент с номером большим, чем есть в массиве.
В этой строке: System.arraycopy(array2,0, arr,arr.length+1, array2.length); вы говорите, что вам надо вставить массив array2 в массив arr начиная с места arr.length+1, но в массиве-то у вас всего arr.length элементов. Он так не умеет расширяться. Вам надо создать новый массив размерностью ваш старый массив + новый массив. В него тогда все слезет. Ну или обрезать, если вам расширять массив нельзя
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка java.lang.ArrayIndexOutOfBoundsException
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]