Выбор структуры данных на основе требований - PullRequest
0 голосов
/ 26 февраля 2019

Я совершенно новичок в программировании и, в частности, в Java, и я пытаюсь определить, какую структуру данных использовать для конкретной ситуации.Поскольку я не знаком со структурами данных в целом, я понятия не имею, что делает структура, и с какими ограничениями она связана.

Итак, у меня есть файл CSV с кучей элементов, скажем, символов и соответствующих чисел.Итак, мой список выглядит так:

A, 1, B, 2, B, 3, C, 4, D, 5, E, 6, E, 7, E, 8, E, 9, F, 10 ...... и т. Д.

Мне нужно прочитать это, а затем:

1) отобразить только буквы или цифры, отсортированные по алфавиту или по цифрам

2) поиск, чтобы видеть, содержится ли элемент в любом списке.

3) поиск, чтобы видеть, содержится ли пара элементов (например, A - 1 или B-10) в списке соответствия.

Думайте об этом как о таблице Excel с двумя столбцами.Мне нужно иметь возможность сортировать по любому столбцу, сохраняя связь, и мне нужно иметь возможность сделать столбец IF A = ​​некоторую переменную И соответствующий столбец B содержит некоторую другую переменную, а затем делать то же самое.

Мне также нужно иметь возможность вставить пару в исходный список в любом месте.Поэтому вставьте A в список 1 и вставьте 10 в список 2, но убедитесь, что они сохраняют отношение A-10.

Надеюсь, это имеет смысл, и спасибо за любую помощь!Я работаю над приобретением книги «Структуры данных в Java» и пытаюсь записаться на занятия в нашем местном колледже, но она предлагается только каждую весну ...

1 Ответ

0 голосов
/ 26 февраля 2019

Вы можете использовать две отсортированные Карты , такие как TreeMap .Можно сопоставить символы с числами (Map<Character,Number> или что-то подобное).Другой будет выполнять обратное сопоставление (Map<Number, Character>)

Давайте посмотрим на ваши требования:

1) отобразить только буквы или только цифры, отсортированные по алфавиту или по цифрам

Просто переберите одну из карт.Итерация будет упорядочена.

2) найдите, чтобы увидеть, содержится ли элемент в любом из списков.

Просто проверьте соответствующую карту.Ищете номер?Проверьте Map, чьи ключи являются числами.

3) поиск, чтобы увидеть, содержится ли пара элементов (например, A - 1 или B-10) в списке соответствия.

Просто get() значение A из таблицы символов и проверьте, является ли это значение 10.Если так, то А-10 существует.Если значения нет или значение не равно 10, то A-10 не существует.

При добавлении или удалении элементов вам необходимо позаботиться о том, чтобы изменить обе карты, чтобы синхронизировать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...