2012-07-31 2 views
0

사용자 입력을 기반으로 배열 목록 인 검색 결과를 표시하는 응용 프로그램을 만듭니다. 이 결과를 알파벳 알파벳 "A"로 시작하는 모든 요소가 "B"로 시작하는 제목 A 아래에 타일 B 아래에있게하는 것처럼 시작 알파벳 인덱스로 결과가 구분되는 순서로 표시해야합니다. ..배열 목록에서 지정된 문자열로 시작하는 모든 요소 가져 오기

각 요소의 첫 번째 문자를 검색하고이를 알파벳과 비교하면 성공하지만 로그 방식으로 느껴집니다. 아무도 직접 요소를 얻을 수 있도록 직접적인 방법을 제안 할 수 있습니까?

미리 감사드립니다. Tim

+0

알파벳순으로 이름을 정렬해야합니까? 맞습니까? – Venky

+0

예, Android 순서대로 연락처가 표시되는 것과 같습니다. – Timson

+0

api : http://developer.android.com/reference/android/widget/AlphabetIndexer.html http : // stackoverflow를 확인하십시오. com/questions/4115920/alphabetindexer-with-custom-adapter – jeet

답변

0

모두 비교하지 마십시오. 검색 항목을 색인으로 사용하십시오. 일정한 발견 시간. 검색 항목을 고유 한 번호로 변환하는 색인 ​​기능이 필요합니다. 예를 들어 :

lets find "data" word in your list. 

d=4, a=1, t=20: 

data----->4 + 1*4 + 20*(1+4) + 1*(20+1+4) just made up this. 
0

당신이 그것을 디스플레이가 유일한 요구 사항 인 경우

+0

또는 목록을 정렬하고 일부 논리를 시도 할 수 있습니다 –

+0

List를 사용하여 목록을 정렬 한 다음 사용자 정의 메서드를 만들고 값을 검색 할 수 있습니다 –

1

로 시작하는 문자열의 목록을 가져 오기위한 정규 표현식

^A*\W$을 사용할 수 있습니다 ArrayList.get(0)가 줄 것이다 어디 ArrayList<Set<Title>> 설정은 것입니다 모든 제목 있음

O (1) 액세스를 원하지만 (목록 구조를 표시하고 싶지는 않음) 멀티 맵을 사용하면 get ('A'). get ('MY TITLE') will 곧바로 당신을 돌려 준다. 가치.

+0

시도해보십시오 :) – Timson

관련 문제