2017-12-19 1 views
-1

나는 이런 종류의 데이터를 가지고 있습니다. 이것은 배열 일 수도 있고 아닐 수도 있습니다. 쉽게 참조 할 수 있습니다.데이터 저장 - 각 저장소 유형의 이점과 단점

ArrayName = 배열 ​​1, 배열 2, Array3

배열 1 = ABC, CDE, FGH

배열 2 = ABC, CDE

Array3 = ABC, CDE, FGH, IJK, LMN

그래서 이러한 종류의 데이터를 저장하는 가장 좋은 방법은 무엇입니까?

내가

  1. 추가 할 아니면 발견

방법 (CDE 예 FGH를 추가하거나 제거 할 수 있습니다.) 추가 또는 배열 2에서 항목을 삭제

  • 내부 배열 1과 모든 것을 삭제하는 경우 :

    1. SharedPreference Android Shared preferences example
    2. 개 배열
    3. SQLite는 Android SQLite Example
    4. 텍스트 파일

    당신이 방법을 선택하는 이유의 프로 양론을 공유하십시오. 이러한 종류의 데이터를 저장하는 더 좋은 방법이 있다면 공유하십시오.

    참조 할 수있는 다른 링크 나 샘플을 찾으면 친절하게 편집하십시오. 당신은 여기에 간단한 키 - 값 쌍을 저장

    1) SharedPreference : 여기

  • +0

    ** ArrayName = 배열 ​​1, 배열 2, 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) 배열

    당연하지! 그것은 메모리 저장, 그래서 당신이 가까운 응용 프로그램 또는 프로세스의 죽음에, 모든 데이터

    3

    ) SqlLite

    을 잃게됩니다 때 나는 영역처럼, 안드로이드이 다른 데이터베이스에 추가합니다. 좋은 해결책. 데이터 수집을위한 구조화 된 저장소입니다. 데이터가 행으로 구성 될 때 데이터를 저장/검색하는 것은 매우 쉽습니다. 또한 행을 쉽게 삭제할 수 있습니다.당신은 당신이 특정 행 또는 특정 배열 (이 경우 테이블)을 필요로 할 때 전체 구조 (다른 배열)를 읽을 필요가 없습니다

    4) 이 TextFile

    나는에 저장하지 않는 것이 좋습니다 텍스트 파일로 변환 할 수는 있지만 가능하면 해당 배열을 텍스트 파일로 직렬화하고 비 직렬화 할 수 있습니다. 그러나 매번이 작업을 수행하고 전체 구조를 읽고 구문 분석을 수행해야 할 때마다 예를 들어 Array2. 데이터가 커지면 속도가 느려질 수 있습니다.

    +1

    답변을 주셔서 감사합니다. 매우 상세하고 도움이됩니다. – Anthony

    0

    모호한 요구 사항에 대한 조언을하기가 매우 어렵습니다. 데이터 배열이 문자열 배열로 구성되어 있고 Android에 영구 저장하려는 경우 - 기본적으로 우리가 알고있는 것입니다.

    언급 된 솔루션 외에도 GSON을 사용하여 디스크에 JSON으로 저장하는 것이 좋습니다. 읽기/쓰기가 최적의 성능을 내지 못할 수도 있지만, 배열 배열과 같이 문서를 모델링하는 것은 매우 쉽습니다. 우리는 사용하기 쉽고 성능 요구 사항을 알 수있는 방법이 없습니다.

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

    이 생산 무언가

    { 
        "data": [ 
        ["abc", "cde", "fgh"], 
        ["abc", "cde"], 
        ["abc", "cde", "fgh", "ijk", "lmn"] 
        ] 
    } 
    

    같은 : 당신은 다음의 MyData 개체가있는 경우

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

    , 당신은 단순히 디스크의 파일에 기록 될 수있는 문자열로 직렬화 수

    디스크를 사용하여 쉽게 작성할 수 있습니다. 표준 파일 및 BufferedWriter. 그런 다음 다시 읽고 사용하여 역 직렬화 할 수 있습니다 이 배열은 배열의 배열입니다 **

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

    실제로, 그것은 지금 사용하고있는 것이지만 SQLite 학습을 계획하고 있습니다. – Anthony

    관련 문제