2017-12-19 14 views
-1

私はこの種のデータを持っています。これは配列でも配列でなくてもかまいません。簡単な参照のために。データの保存 - 各ストレージタイプの利点と短所

ArrayName = ARRAY1、ARRAY2、ARRAY3

ARRAY1 = ABC、CDE、FGH

ARRAY2 = ABC、CDE

ARRAY3 = ABC、CDE、FGH、IJK、LMN

このような種類のデータを保存するには、どのような方法が最適ですか。

私は

  1. 追加したいか、私が発見

方法(CDE例えばFGHを追加または削除します。)を追加または配列2内の項目を削除し

  • 内ARRAY1とすべてのものを削除した場合:

    1. SharedPreference Android Shared preferences example
    2. の配列
    3. SQLiteのAndroid SQLite Example
    4. テキストファイル

    あなたが方法を選択する理由のプロと短所を共有してください。 この種のデータを保存するより良い方法がある場合は、共有してください。

    他の人に参照できるように、より良いリンクやサンプルが見つかった場合は、これを適切に編集してください。あなたがここに簡単なキーと値のペアを保存

    1)SharedPreference:ここ

  • +0

    ** ArrayName = ARRAY1、ARRAY2、ARRAY3 ** この配列は、配列の配列ですか? 永久保存しますか?私はあなたのオプション2が配列なので質問があります –

    +0

    @MishaAkopovはい、配列の配列です。はい、それを永久保存することができます.2と4を組み合わせることもできます。 – Anthony

    +0

    [使用するAndroidデータストレージテクニック]の複製がありますか(https://stackoverflow.com/questions/9986734/which-android-data-storage-technique-to-use) – Adinia

    答えて

    1

    は、各ソリューションの長所と短所があります。したがって、SharedPreferenceに配列や複雑な構造を保存することは非常に難しいです。したがって、このソリューションは配列と配列の配列では機能しません。あなたが望むものを達成することは非常に難しいことではありません。

    2)配列

    絶対にありません!これは、メモリ・ストレージですので、あなたが近いアプリ、またはプロセスの死に、あなたはすべてのデータ )SqlLite

    を失うことになるとき、私はレルムのように、アンドロイドのためのこの他のデータベースに追加します。 良い解決策。これは、データの収集のための構造化ストレージです。データが行として構成されている場合、データの格納/取り出しは非常に簡単です。さらに、行を簡単に削除できます。あなたが特定の行、または特定の配列(この場合はテーブル)を必要とするとき、全体の構造(他の配列)を読む必要はありません

    4)TextFileの

    私はに格納することはお勧めしません。テキストファイルを作成することはできますが、そうすることができます。これらの配列をテキストファイルにシリアル化してデシリアライズすることができます。しかし、あなたがこれをしなければならないたびに、構造体全体を読み込んで解析する必要があるたびに、例えば、 Array2。データが大きくなると遅くなることがあります。

    +1

    回答ありがとうございます非常に詳細で有用です。 – Anthony

    0

    このような曖昧な要件についてアドバイスをすることは非常に難しく、データは文字列の配列として構造化されており、Androidに永続的に保存したいと思っています。

    上記のソリューションに加えて、私はGSONを使用してこれをJSONとしてディスクに保存することを検討します。読取り/書込みには最適なパフォーマンスはないかもしれませんが、配列の配列などのドキュメントをモデル化するのは非常に簡単で、パフォーマンス要件と使いやすさを知る方法がありません。あなたは、その後のMyDataオブジェクトを持っている場合は

    class MyData { 
        public List<List<String>> data; 
    } 
    

    することは、あなたは、単にディスク上のファイルに書き込むことができ、文字列、それをシリアライズできます

    String json = new Gson().toJson(myData); 
    

    これは

    { 
        "data": [ 
        ["abc", "cde", "fgh"], 
        ["abc", "cde"], 
        ["abc", "cde", "fgh", "ijk", "lmn"] 
        ] 
    } 
    
    のようなものを生成します

    これは簡単にディスクに書き込むことができます。標準ファイルとBufferedWriter。その後、戻ってそれを読み、使用してデシリアライズすることができます

    MyData myData = new Gson().fromJson(json, MyData.class); 
    
    +0

    確かに、それは私が今使っていたものですが、SQLiteの学習を計画しています。 – Anthony

    関連する問題