#android #arrays
#Android #массивы
Вопрос:
У меня есть массив данных длиной 10 000 записей. Эти данные почти никогда не меняются, и я мог бы обработать их в приложении, если бы это все равно произошло. Мне кажется ненужным хранить это во внешней базе данных, учитывая, что это просто строковые данные, поэтому они не будут большими.
Есть ли способ сохранить это на телефоне пользователя с помощью приложения. Я думал о строковых ресурсах или файле csv. Но это не кажется самым быстрым или лучшим вариантом. Какие соображения мне нужны при принятии решения о том, загружать ли его в базу данных или сохранять на устройстве. В настоящее время я использую DynamoDB, поэтому поиск в массиве по многим атрибутам будет затруднен.
Заранее спасибо за вашу помощь.
Комментарии:
1. почему вы не используете sqlite
2. @Sarthak Я никогда не благодарил нового, что было возможно внутренне благодаря
Ответ №1:
Если ваши данные не будут изменены в будущем. Означает, что его статические данные затем помещаются в string.xml
или
Если ваши данные будут изменены в будущем, тогда используйте его базу данных…..
Ответ №2:
Я бы предпочел хранить Strings
в a String-Array
в вашем Strings.xml
, например, так:
<resources>
<string-Array name ="data">
<item> Data 1 </item>
<item> Data 2 </item>
<item> etc etc </item>
</string-array>
</sesources>
а затем в вашем классе вы бы ссылались на массив и сохраняли этот массив в своем List
List<String> stringData = new ArrayList<String>(Arrays.asList(getResources().getStringArray(R.array.data)));
for (String row : stringData){
Log.d("Data", row);
}
если вы кодируете это из a Fragment
, я предлагаю использовать getActivity().getResources().getStringArray(R.array.data)
или передать контекст вашему Fragment
.
Ответ №3:
Учитывая размер ваших данных (10 000), не стоит использовать строковые ресурсы.Кроме того, ваши данные являются статическими, что означает, что они будут доступны только для чтения. Поэтому лучше использовать file или Sqlite.Однако, если вы выполняете много запросов к своим данным, например, для поиска определенной записи, я рекомендую вам использовать Sqlite, потому что вы можете использовать индекс SQLite для более быстрого запроса данных, ускорения сортировки…