Я создал много объектов Geodata (name, postalCode, lat, lon). Теперь я хочу поместить их в коллекцию для поиска различных записей позже.Поиск/Запросы в коллекциях (Java)
Все должно происходить objectOriented/in-memory, поэтому вам не нужна реляционная база данных.
Такой запрос выглядит следующим образом:
- Найти широта и долгота по имени или плз
- Найти объекты между LAT1, LAT2 и LON1, LON2
Что коллекция является лучшим выбором для такая «простая» структура данных?
Какая сложность необходима для такого запроса? Может ли многопоточность быть полезной? Если это так, какая коллекция используется в лучшем случае для обеспечения безопасности потоков?
Есть ли возможность написать такие запросы в базе данных key => value?
Я хочу решить эту проблему с чистой java! Сортированные структуры кажутся приятными. Разве не лучше использовать дерево с плоскими объектами, отсортированными по компаратору с помощью lat/lon? Есть также более 100 000 записей, поэтому я не уверен, что для запроса потребуется меньше, чем миллисекунда. –
@Martin - Некоторая реализация 'Map', такая как' HashMap', очень эффективна при поиске вещей, она может легко найти объект менее чем за миллисекунду, даже если ваша карта содержит более 100 000 записей. – Jesper
Нет ли лучшего решения с составными клавишами и деревьями с использованием метода subSet? –