Я правильно использую функцию длины 2D Arraylist? - PullRequest
2 голосов
/ 05 марта 2020

Я получаю ошибку: Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 11 out of bounds for length 6

В проекте, который мне нужно сделать, я должен иметь возможность добавлять и удалять из таблицы определенные значения, которые полностью работают. Однако я хочу, чтобы мой 2D ArrayList мог иметь заданное значение 6 (ширина) и 6 (длина), но иметь возможность добавлять объекты вне диапазона, например addToTable(x, y) - > addToTable(7, 7) без ошибок.

переменная:

ArrayList<ArrayList<My2DTableCoordinate>> coordinates

функция:

private boolean checkIfInRange(int x, int y) {
    if (x < coordinates.get(x).size() && y < coordinates.get(y).size()) {
        return true;
    }
    return false;
}

это при условии, что

  int width = 6;
  int height = 6;

x это ширина, y это высота

1 Ответ

1 голос
/ 08 марта 2020

Посмотрите на Apache Утилиты Commons Collection. Типы GrowthList и LazyList могут быть решением вашей проблемы. Вот ссылки на javado c:

https://commons.apache.org/proper/commons-collections/apidocs/index.html?org / apache / commons / collection4 / list / GrowthList. html

https://commons.apache.org/proper/commons-collections/apidocs/index.html?org / апач / Обще / collections4 / список / LazyList. html

...