Не буду объяснять, что это правильней было бы назвать это целочисленной матрицей, что не надо давать классу имя стандартного интерфейса и много чего ещё...
Ну а в чём вопрос-то?
В принципе правильно же рассуждаешь...
Только не надо возвращать внутренности.
лучше сделай setter/getter, где будешь проверять на возмжные ошибки и т.п.
типа
Integer getValueByIndexies(int x, int y){
//всякие проверки, чтоб небыло неконтролируемых эксепшнов, типа аутОфРэндж
return collectionOfPoints.get(x).get(y);
}