2012-07-26 4 views
0

나는 다음과 같은 방법으로 구조, 기본 사용자 인터페이스로 확장 목록보기를 사용하는 응용 프로그램을 짓고 있어요 : * 알라 카르테 : - 롤스 : + 연어 + 2.95 + 참치 - 초밥 : + + 연어 방어중첩 배열은 어떤 목록 크기에서 성능에 영향을 줍니까?

다음 I는이 요소가 일치하는 구조를 구축 XML :

<type type = "A la Carte> 
    <option option = "Rolls"> 
    <item> 
    <name> Salmon</name> 
    <price> 2.95 </price> 
    </item> 
    </option> 
</type 
,

(XML 오류는 신경 쓰지 말아라. 메모리에서 입력했지만 XML은 작동한다.)

XML을 구문 분석하기 위해 SAXParser를 사용하고 있습니다. 문제는 데이터를 어떤 구조로 구문 분석해야합니까?

ArrayList를 (종류) (ArrayList를 (옵션이 포함되어 있습니다 (포함)의 ArrayList를 :

메뉴 목록이 크지 않다 (카테고리에 걸쳐 100 개 요소의 총) 그래서 나는 다음과 같이 내가 중첩 된 arraylists의 집합을 만들 것이라고 생각 items)에는 배열 (이름, 가격)이 포함됩니다.

이 구조는 데이터를 ListView에 호출하는 순서를 재생하고 데이터가 확인 시트에 표시되는 방식과 일치하며 일치합니다 SQLite의 구조를 서버로 전달하여 순서를 수행합니다.

내 질문 이 크기 목록 및이 중첩 양에 따라 성능이 앱에서 심각하게 고갈 될 것인가? 특히 배터리 수명을 단축시킬 것인가?

나는 정말로 당신의 생각을 기다리고 있습니다!

참고 : 기억해야 할 것은이 구조를 다른 서비스에 다시 사용하고 싶습니다. 예를 들어 나의 카페테리아에 바베큐 스페셜이 있다고 가정 해 봅시다. 비슷한 구조의 XML 파일을 삽입 할 수 있기를 바라고 싶습니다. (바베큐가 있기 때문에 다른 텍스트가 필요합니다.) 코드를 읽으려면 최소한 코드를 변경하십시오.

답변

0

4 개의 중첩 된 ArrayLists가 표시되어 성능이 저하되기 시작합니다. 그리고 여분의 배터리 수명을 사용하여 모든 배열 표시를 찾습니다. 항목, 옵션 및 유형에 대해 BasicNameValuePair (이름, 가격), LinkedList 등의 다른 데이터 유형을 사용해보십시오. 이것은 더 빨리 달릴 것입니다. 아마 더 나은 프로그램을 구성하기 위해 BasicNameValuePair (이름, 가격)를 보유하는 간단한 Item 클래스를 만들 것입니다.

주문이 중요하지 않은 경우 LinkedList 대신 HashMap을 사용합니다. 요소를 이름으로 입력하고 액세스하는 것이 훨씬 빠릅니다.

알파벳 순서대로 항상 사용하는 경우 TreeMap을 사용하면 빠른 속도로 자동으로 모든 항목을 사전 순으로 배치하므로 매우 유용합니다.

+0

도움 주셔서 감사합니다. Andy! – Laurent

관련 문제