Здравствуйте, я начинающий разработчик, опыт в Java есть небольшой. Возникло желание написать определенную программу под Андроид.
Что она делает: Выбирается человек из спиннера и в следующем активити показывается его Имя, Возраст, День и Месяц рождения.
Данные берутся из текстового файла, который парсится так: 01302002 = Человек с номером 01 (они все закодированы), возраст 30 лет, родился 20.02 (20 февраля).
В спиннере выбор - Иванов, Петров, Сидоров...
Выбираем Иванова, его код 01. Потом парсится файл на наличие первых двух символов 0 и 1 и формируется ListView.
Соответственно, надо обеспечить получение фамилии по номеру и номера по фамилии, и чтобы всё это хранилось централизованно.
На ум приходит только Map (типа ArrayMap).
Вопросы: 1) Можно ли потом поле Значений из ArrayMap "скормить" спиннеру, чтоб его образовать? 2) Нормально ли будет осуществляться поиск по ArrayMap?
Как лучше организовать хранение данных?
Re: Как лучше организовать хранение данных?
а вы что, хотите как-то этот мэп принципиально хранить в текстовых файлах и парсить?
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Как лучше организовать хранение данных?
1. Сомневаюсь, что это будет сильно сложнее этого: Android Spinner with Hashmapkondra007 писал(а):Здравствуйте, я начинающий разработчик, опыт в Java есть небольшой. Возникло желание написать определенную программу под Андроид.
Что она делает: Выбирается человек из спиннера и в следующем активити показывается его Имя, Возраст, День и Месяц рождения.
Данные берутся из текстового файла, который парсится так: 01302002 = Человек с номером 01 (они все закодированы), возраст 30 лет, родился 20.02 (20 февраля).
В спиннере выбор - Иванов, Петров, Сидоров...
Выбираем Иванова, его код 01. Потом парсится файл на наличие первых двух символов 0 и 1 и формируется ListView.
Соответственно, надо обеспечить получение фамилии по номеру и номера по фамилии, и чтобы всё это хранилось централизованно.
На ум приходит только Map (типа ArrayMap).
Вопросы: 1) Можно ли потом поле Значений из ArrayMap "скормить" спиннеру, чтоб его образовать? 2) Нормально ли будет осуществляться поиск по ArrayMap?
2. ArrayMap, по сути это хеш таблица, соответственно поиск будет очень быстрым. Вы вполне можете использовать индекс(01302002), как ключ - это вполне стандартное решение. Значение же - объект с остальными полями.
P.S. понятно, что все это зависит от формата входящих данных(к примеру выхода нет, если получать их из 1с), но реляционная база тут сильно упростила бы жизнь.
Re: Как лучше организовать хранение данных?
Хм..интересно, но я нашел ещё хорошее решение: https://code.google.com/p/guava-libraries/
Библиотека Guava, в ней есть замечательная коллекция - BiMap - двусторонняя мапа. Если надо по значению искать ключ, то просто добавляем метод inverse()
И ещё там нашлась отличная её разновидность ImmutableBiMap - не изменяющаяся во времени мапа. То есть, она даже сохраняет порядок введенных значений.
Библиотека Guava, в ней есть замечательная коллекция - BiMap - двусторонняя мапа. Если надо по значению искать ключ, то просто добавляем метод inverse()
И ещё там нашлась отличная её разновидность ImmutableBiMap - не изменяющаяся во времени мапа. То есть, она даже сохраняет порядок введенных значений.
Re: Как лучше организовать хранение данных?
ОФФТОП!!! Почему овца?
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Как лучше организовать хранение данных?
LinkedHashMap тоже сохраняет порядок входящих данных. Может стоит использовать стандартные коллекции, которых предостаточно?kondra007 писал(а):Хм..интересно, но я нашел ещё хорошее решение: https://code.google.com/p/guava-libraries/
Библиотека Guava, в ней есть замечательная коллекция - BiMap - двусторонняя мапа. Если надо по значению искать ключ, то просто добавляем метод inverse()
И ещё там нашлась отличная её разновидность ImmutableBiMap - не изменяющаяся во времени мапа. То есть, она даже сохраняет порядок введенных значений.
Re: Как лучше организовать хранение данных?
adarash, оффтоп-ответ: потому на на форуме Mozilla Firefox давно ещё требовались аватарки очень маленькие и овца - первая картинка нужного размера, что мне попалась.
(как ещё вариант: я очень хреновый программист )
m090050 - сомневаюсь, что в LinkedHashMap можно искать ключи по значениям =)
(как ещё вариант: я очень хреновый программист )
m090050 - сомневаюсь, что в LinkedHashMap можно искать ключи по значениям =)