我的問題是這樣的,當我得到一個數據,我把它存儲在一個數據結構中,並保留一個counter.If類似的東西,然後通過在數據結構中搜索它,如果類似的東西已經存在,那麼只需增加計數器並且我的數據沒有限制。數據有時可能會非常大。因此,作爲java的初學者,我想知道哪個數據結構對我的問題是好的/有效的。哪個是我的應用程序的最佳Java數據結構?
1
A
回答
3
你想要一個HashMap,無論你的「數據」作爲關鍵字,還是一個計數器作爲值。
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/HashMap.html
這是一個不錯的選擇的原因是因爲它有O(1)「包含了」檢查,檢索和插入時間。只要你不需要排序你的數據,這是一個很好的選擇。
這個未經測試的代碼應該讓你開始。將String
替換爲您的數據類型。如果是自定義類,則必須重載hashCode()
和equals()
。
HashMap<String, Integer> map = new HashMap<String, Integer>();
...
Integer i = map.get(data);
if(i == null) {
map.put(data, 1);
} else {
map.put(data, i + 1);
}
1
聽起來像你需要使用HashMap<YourClass, Integer>
(link)。
值是計數器,這就是爲什麼它是整數。 當出現問題時,您檢查是否存在具有該密鑰的項目。如果不是,則添加它(值爲1),否則將其添加爲值1加上以前的值。
您可以優化,而不是整數使您的值是一個自定義類,其中包裝一個整數,並允許增加。這樣你每次增加時都不必插入散列圖。
相關問題
- 1. 哪個是Rails應用程序的最佳數據庫?
- 2. 哪個是設計Java ME應用程序的最佳框架?
- 3. 使用ngrx的應用程序的最佳結構是什麼?
- 4. 我的需求的最佳應用程序結構
- 5. 我的本地腳本應用程序的最佳結構
- 6. Javascript的體系結構/應用程序結構最佳實踐?
- 7. Java用於排序的最佳數據結構?
- 8. 什麼是Dojo應用程序結構的最佳設計
- 9. 哪個是GTK應用程序的最佳GUI設計器?
- 10. 哪一個是NetBeans開發j2me應用程序的最佳IDE?
- 11. 基於網絡的足球應用程序的最佳MySQL數據庫結構
- 12. 哪個是管理Android AR應用數據的最佳方法?
- 13. Android:這個應用程序的最佳層次結構是什麼?
- 14. 哪個是iOS應用程序開發中應遵循的最佳體系結構?
- 15. Symfony2的應用程序結構的最佳實踐
- 16. 在Android應用程序中存儲對象的最佳高效數據結構
- 17. 什麼是我們的最佳數據庫結構...:
- 18. 存儲和操作我的數據的最佳數據結構?
- 19. 應用程序的數據庫結構
- 20. 簡單的語法檢查程序 - 最佳數據結構
- 21. C++和java應用程序的最佳數據庫
- 22. 要應用哪個數據結構?
- 23. 我應該遵循哪個應用程序體系結構?
- 24. 存儲特定結構化數據的最佳數據結構
- 25. Api-Admin-Client應用程序的最佳ZF2體系結構
- 26. 哪個SOA架構最適合Java應用程序?
- 27. 我應該在Java中使用哪種數據結構?
- 28. 哪個是Android SVN項目的最佳結構?
- 29. Apache Spark - 三維數據的最佳數據結構是什麼
- 30. 訂單的最佳數據庫結構
很酷的優化;從來沒有想到這一點。 +1 – 2012-02-04 11:14:35