2012-12-06 151 views
0

我想知道什麼樣的方法,我應該使用搜索在數組中的元素,什麼數據結構來存儲返回值搜索元素在Java中

例如一個txt文件包含以下

123名行明月夜表
124笑驚魂狗
123報價行做pet表
127線陣列招呼表

和搜索元件是線+表 我讀每一行作爲一個字符串,然後通過空間

溢出輸出謹此

123 2(ID 123出現兩次包含搜素)

我想要什麼樣的方法提出了一些建議,以搜索數組中的元素和什麼樣的數據structu重新存儲返回值(發生的ID和數量。我在想hashmap)

回答

0

閱讀文本文件並存儲以表格結尾的每一行ArrayList<String>。然後使用包含在ArrayList<String>中的每個元素。將結果存儲在HashMap<key,value>中,其中鍵爲ID,值爲Integer,表示發生ID的次數。

+0

謝謝。所以我必須使用循環來檢查元素是否有多個搜索元素? – John

+0

您需要搜索ArrayList的所有元素並相應地增加HashMap的值。 – Addict

0

首先,我會繼續逐行閱讀文件,除此之外真的沒有其他辦法可以解決這個問題。其次,要挑選要保存的行,您不需要執行拆分(假設:它們都以(空格)表格結尾)。您可以通過使用只是讓他們:

if (line.endsWith(" table")) 

然後,我會建議使用Map<String, Integer>類型來存儲你的信息。這樣,您就擁有了表格(關鍵字)的編號以及在文件(值)中找到了多少次。

Map<String, Integer> map = new HashMap<String, Integer>(); 
....reading file.... 
if (line.endsWith(" table")) { 
    String number = line.substring(0, line.indexOf(" ")) 
    if (!map.containsKey(number)) { 
     map.put(number, 1); 
    } else { 
     Integer value = map.get(number); 
     value++; 
     map.put(number, value); 
    } 
}