두 개의 열로 구성된 큰 CSV 파일 (8000 개의 행)이 있습니다. 첫 번째 열은 1에서 10000 사이의 정수이고 두 번째 열은 6에서 10 자의 문자열입니다. 구현은 Android이므로 AssetManager를 사용하여 파일에 액세스하고 있으므로 파일에서 읽으려면 InputStream을 사용해야합니다.연속적인 정수를 String으로 매핑하는 CSV 파일을 어떻게 색인화하여 Java에서 효율적으로 검색 할 수 있습니까?
시스템에 대한 입력은 1에서 10000 사이의 정수이며 출력은 해당 문자열이거나 일치하는 정수가없는 경우 null입니다. 앱의 일반적인 사용 사례에는 여러 (~ 4) 개의 요청이 포함됩니다. 각 요청은 현재 구현에서 앱을 2-3 초 동결합니다.
메모리에 전체 파일을 저장하지 않고 전화 번호부 (즉, O (log (n)) 시간) 검색을 사용하여이 검색을 효율적으로 수행 할 수 있기를 원합니다. 필자는 CSV 파일을 다른 형식으로 다시 포맷해야한다고 가정합니다. 아마도 SQL 데이터베이스일까요? 이 경우 적절한 구현은 무엇입니까?
나는 대규모 데이터 액세스에 완전히 익숙하지 않으며, 파일을 메모리에로드하고 Android에서 액세스하는 방식이 약간 퍼지기 때문에 내 정신적 인 모델이라고 할 수 있습니다. 미리 감사드립니다.
얼마나 시원한가요? 그 링크에 대해 정말 고마워요. 제가 필요로하는 것과 똑같아 보입니다. 그런 다음 데이터베이스를 Android 자산 폴더에 일반 파일로 패키지합니까? – Jamie
이것이 필요한 것일 수 있습니다. http://www.chriskopec.com/blog/2010/mar/13/deploying-android-apps-with-large-databases/ – bytebender