2017-03-11 1 views
2

나는 안드로이드를 처음 접했고 어떻게 배열을 메모리에 저장할 수 있는지 알고 싶습니다. 내부 메모리를 의미하지는 않습니다. 공유 환경 설정, 외부 저장소 및 sqlite에 대해 알고 있습니다. RAM/힙 범위 내에서 뭔가를 찾고 있어요.안드로이드에 배열을 메모리에 저장하는 방법

실제 문제는 문자열 배열이 있다는 것입니다. 앱이 처음 시작될 때 sqlite 데이터베이스에서 이름을 얻습니다.

예컨대

String[] names = new String[] {"dave", "james", "tommy" } 

이 목록은 10,000 항목 이상 포함하도록 확장 할 수 있습니다.

다른 활동에서 일부 이름이 목록에 있는지 확인하고 싶습니다. 나는 이것을 달성하기 위해 앞뒤로 데이터베이스를 질의하고 싶지 않다. 그래서 메모리 절약이 성능을 향상시킬 수있는 최선의 방법 일 수 있다고 생각합니다.

그래서이 배열을 메모리에 저장하고 다른 활동에서 읽는 방법을 알고 싶습니다. 나는 이미 나의 RAM을 관리하는 방법을 알고있다 나는 단지이 정보를 얻고 그것을 읽는 방법을 찾고있다.

감사

+0

이 목록은 정적 또는 변경 될 수 있습니까? –

+0

값을 변경하거나 @O 할 수 있습니다. –

+2

목록이 이미 RAM/힙에 있습니다. 그것은 자바 객체입니다 ... –

답변

0

Singleton 패턴을 만들고으로 array를 넣어 앱 인스턴스에 걸쳐 배열을 공유 할 수 있지만,이 singleton 클래스가 응용 프로그램과 함께 파괴 될 것입니다 기억 때문에 그 안에 당신의 당신이 배열 것입니다.

싱글 톤이 생성되는 방식입니다.

class Bar { 
private static class ArrayHolder { 
    public static List<String> array = new ArrayList<>(); 
} 

public static Bar getArray() { 
    return array; 
} 
} 

당신이 당신의 배열에 액세스해야 할 때마다

는이 ArrayHolder.getArray()

+0

여기서'ArrayHolder' 클래스의 목적은 무엇입니까? 게으른 홀더 관용구를 잘못하려는 것처럼 보입니다. 그러나 게으름은 불필요 해 보입니다. –

+0

싱글 톤 방식을 사용하여 다른 활동의 배열에서 데이터를 가져올 수 있습니까? – Tajinere

+1

예 싱글 톤 접근 방식을 사용하여 데이터를 검색 할 수 있습니다. –

관련 문제