Вам следует рассмотреть возможность использования java.util.List
вместо массивов ( Effective Java 2nd Edition, пункт 25. Предпочитать списки массивам ). Похоже, вы также используете 2-элементный массив для представления "городской ссылки"; это не лучшая модель для ваших данных.
Вы должны определить class CityLink
, возможно, что-то вроде этого:
public class CityLink {
final City source;
final City destination;
//...
}
Тогда вы объявляете List<CityLink>
.
API ссылки
java.util.List<E>
int size()
- возвращает количество элементов в этом списке.
E get(int index)
- Возвращает элемент в указанной позиции в этом списке.
add(E e)
- добавляет указанный элемент в конец этого списка
java.util.ArrayList<E>
- Реализация массива изменяемого размера интерфейса
List
.
На счету вещей
Если вы настаиваете на использовании массивов, то вы должны вести подсчет того, сколько элементов в массиве являются «настоящими» элементами. Самый простой способ сделать это - иметь значение int count = 0;
, которое вы увеличиваете каждый раз, когда добавляете элемент в массив.
В любой момент времени единственными «реальными» элементами в массиве являются arr[i]
, где i
изменяется от 0
(включительно) до count
(исключая). Если count == arr.length;
, то массив заполнен и больше не может содержать какие-либо дополнительные элементы.
Опять же, нужно сказать, что это ужасный способ решения вашей нынешней проблемы, который в будущем приведет только к еще большему количеству проблем. Вы действительно должны использовать List
.
По столбцам и строкам
или хотя бы 5 первых столбцов!
Учитывая это объявление:
int[][] table = new int[10][20];
Традиционно считается, что table
имеет 10 строк, по 20 столбцов в каждой строке.