Подскажите структуру данных
Для написания программы мне понадобилась структура данных, обладающая определёнными свойствами. Она должна хранить набор однотипных элементов. Должна уметь добавлять и удалять элементы. Элемент должен представлять собой набор (массив) двух целых чисел (координаты точки). Я только начал изучать java. Поэтому я знаю пока только две списковых структуры - массив и ArrayList. Массив мне не подходит, т.к. размер должен меняться в ходе программы. Подскажите, подойдёт ли для моих целей ArrayList или какая-то другая структура данных. Ещё раз требования:
1) хранить список элементов
2) добавлять элементы
3) удалять элементы
4) упорядочивать элементы НЕ нужно, мне не важно в каком порядке расположены элементы
5) элемент должен хранить 2 целых числа (пока не знаю в каком виде)
Подскажите на какую структуру данных обратить внимание? Спасибо
Ответы (1 шт):
ArrayList подойдёт, если создать некий класс, объект которого будет хранить оба числа. Пусть есть класс
class NumbersContainer(){
int firstNumber;
int secondNumber;
public NumbersContainer(int first, int second){
this.firstNumber = first;
this.secondNumber = second;
}
}
Тогда создадим объект ArrayList:
ArrayList<NumbersContainer> list = new ArrayList<>();
И будем добавлять экземпляра класса в list:
NumbersContainer firstSet = new NumbersContainer(1, 2);
list.add(firstSet);
Есть другой вариант решения: создадим Map и будем добавлять числа как пара ключ-значение. Эту схему лучше применять при каком-либо ведущем числе.
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
map.put(1, 2);
При использовании Map важно помнить, что не может быть двух одинаковых ключей (первого числа в нашем случае)!