我想知道什麼樣的方法,我應該使用搜索在數組中的元素,什麼數據結構來存儲返回值搜索元素在Java中
例如一個txt文件包含以下
123名行明月夜表
124笑驚魂狗
123報價行做pet表
127線陣列招呼表
和搜索元件是線+表 我讀每一行作爲一個字符串,然後通過空間
溢出輸出謹此
123 2(ID 123出現兩次包含搜素)
我想要什麼樣的方法提出了一些建議,以搜索數組中的元素和什麼樣的數據structu重新存儲返回值(發生的ID和數量。我在想hashmap)
我想知道什麼樣的方法,我應該使用搜索在數組中的元素,什麼數據結構來存儲返回值搜索元素在Java中
例如一個txt文件包含以下
123名行明月夜表
124笑驚魂狗
123報價行做pet表
127線陣列招呼表
和搜索元件是線+表 我讀每一行作爲一個字符串,然後通過空間
溢出輸出謹此
123 2(ID 123出現兩次包含搜素)
我想要什麼樣的方法提出了一些建議,以搜索數組中的元素和什麼樣的數據structu重新存儲返回值(發生的ID和數量。我在想hashmap)
閱讀文本文件並存儲以表格結尾的每一行ArrayList<String>
。然後使用包含在ArrayList<String>
中的每個元素。將結果存儲在HashMap<key,value>
中,其中鍵爲ID,值爲Integer,表示發生ID的次數。
首先,我會繼續逐行閱讀文件,除此之外真的沒有其他辦法可以解決這個問題。其次,要挑選要保存的行,您不需要執行拆分(假設:它們都以(空格)表格結尾)。您可以通過使用只是讓他們:
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);
}
}
謝謝。所以我必須使用循環來檢查元素是否有多個搜索元素? – John
您需要搜索ArrayList的所有元素並相應地增加HashMap的值。 – Addict