#android
#Android
Вопрос:
Я создаю SQLiteOpenHelper и хочу отправить несколько столбцов со столбцами в качестве ключа и возвращаемыми значениями в виде связанной строки. Не удается найти какие-либо связанные массивы в Android, кроме как с помощью HashMap. Могу ли я использовать значения содержимого в качестве связанных массивов?
Комментарии:
1. Что плохого в использовании
HashMap
?2. Ничего. Просто немного новичок и не так хорошо знаком с HashMap. LazyFellowAlert здесь….
Ответ №1:
Вы не очень хорошо описали, чего вы пытаетесь достичь, но есть два варианта:
-
Используйте
HashMap
(или любойMap
, если уж на то пошло) — и помещайте в него значения:Map<String, String> values = new HashMap<String, String>(); values.put("key1", "value1"); values.put("key2", "value2");
Затем, когда вам нужно получить значения, извлеките их из карты.
-
Вы можете использовать
ContentValues
— и помещать в него значения. Код был бы практически таким же.
Какой вариант вы выберете, зависит от ваших предпочтений, а также от того, что вы пытаетесь сделать. Если внутри вашего помощника SQLite вы планируете использовать эти значения для вставки / обновления записей в базе данных, то вы могли бы также просто использовать ContentValues
— в противном случае вам все равно пришлось бы извлекать их из HashMap
и помещать в ContentValues
.
Комментарии:
1. Спасибо за разъяснение. Я хочу отправить значения нескольких столбцов в мой MainActivity и хочу заполнить фрагмент для пользователя на основе этих значений. Я был сбит с толку хэш-картами и увидел значения содержимого во время чтения руководства по классу DBHelper. Не мог понять, почему не использовать значения содержимого вместо HashMap, поскольку я искал и не нашел ссылки, объясняющей причину. Итак, подумал получить совет эксперта о том, почему бы не использовать ContentValues. Я имею в виду любую проблему и т.д.
2. Только что обнаружил при чтении реализации ContentValue, что на самом деле это HashMap<Строка, объект> . 🙂