2012-07-31 148 views
0

我正在創建一個應用程序,該應用程序基於用戶輸入顯示一個數組列表的搜索結果。我需要以結果與起始字母索引分開的順序顯示此結果,就像所有以字母開頭的元素「A」將在標題A下,以「B」開頭將位於B片下,依此類推。 ..獲取從數組列表中指定字符串開頭的所有元素

我成功地檢索每個元素的第一個字符並將其與字母進行比較,但我感覺像一個日誌方式。任何人都可以提出任何直接的方式,以便我可以直接獲取元素?

在此先感謝,蒂姆

+0

您需要按字母順序排序名稱,是嗎? – Venky 2012-07-31 10:35:37

+0

是的,按照字母順序,就像聯繫人在Android手機上顯示的方式:) – Timson 2012-07-31 10:37:00

+0

檢查以下api:http://developer.android.com/reference/android/widget/AlphabetIndexer.html http:// stackoverflow。 com/questions/4115920/alphabetindexer-with-custom-adapter – jeet 2012-07-31 10:36:41

回答

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

你可以使用正則表達式

^A*\W$用於獲取字符串列表以A開頭的

+0

或者您也可以對您的列表進行排序並嘗試一些邏輯 – 2012-07-31 10:35:19

+0

可以使用TreeSet對列表進行排序,然後創建自定義方法並檢索值 – 2012-07-31 10:36:11

1

如果它顯示唯一的要求有ArrayList<Set<Title>>其中ArrayList.get(0)會給A和集將有所有標題

如果你想O(1)訪問(但不想顯示列表結構)使用MultiMap(地圖內的地圖)get('A')。get('MY TITLE')將立刻回報你價值。

+0

將嘗試此:) – Timson 2012-07-31 10:39:13

相關問題