我真的只需要一些方法來找到hashSet中所有字符串的最大長度(無論是一個字符串還是多個字符串) 。我想我應該首先對字符串長度進行排序,然後再遍歷它(從最長的字符串到最短的字符串,以便我可以在看到所有長度最長的字符串後停止迭代)。任何人都可以幫助我弄清楚如何最好地解決這個問題(主要是關心如何按照長度有效地對它們進行排序)?謝謝。Java - 我有一個字符串HashSet,我想以某種方式排序這些字符串的長度
-1
A
回答
1
將字符串存儲在HashSet
中以獲得快速查找的效率在嘗試查找最長的字符串時無助於您。你需要更新你的數據結構。
一種選擇是存儲兩個不同的數據結構 - 的琴絃組,其中用於TreeSet
比較只是比較字符串的長度,加上先前的HashSet
一個TreeSet<Set<String>>
。您可以通過更新TreeSet
中的相應集合以包含新字符串並像以前那樣將字符串插入HashSet
,從而高效地向此混合數據結構中插入字符串。它還可以讓您通過查詢TreeSet
的最大元素來高效查找所有最大的字符串。
希望這會有所幫助!
+0
謝謝,我正在考慮使用treeSet。雖然這在某些情況下肯定會起作用,但在我的情況下,我已經擁有包含所有字符串的散列(在我得到它時不會添加任何字符串)。因此,在這個特殊的例子中,佩雷爾曼在我的主要職位下提出的建議對我來說更有意義。不過謝謝。 – Tim 2012-02-13 04:54:43
相關問題
- 1. 我有一個不同長度的字符串arraylist。我想組字符串
- 2. 我有一個空字符串(char * str),我想連接字符到這個字符串。我已經試過這
- 3. 蟒蛇功能 - 以一個字符串,只有某些字符
- 4. 按長度排序字符串的ArrayList
- 5. 我想分解太長的字符串
- 6. Java Unicode字符串長度
- 7. 一個字符串的字節長度
- 8. 我有數字和字符的字符串,我想單獨
- 9. WxHaskell認爲我的字符串長度爲1個字符
- 10. 想法檢查字符串的某些字符的字符串檢查器?
- 11. Java以一種方式返回多個字符串
- 12. 我想在一個字符串
- 13. 我想從一個字符串
- 14. 我想計算一個字符串的長度,但我得到通知錯誤
- 15. 字符串轉換列表排序的地圖字符串長度爲重點
- 16. 最好的方法來排序一長串字符串
- 17. JAVA:從字符串中讀取字符串到某個字符
- 18. 什麼是建立一個字符串,如果我有字符和長度
- 19. 我想提取字符串
- 20. 檢查某些字符的字符串
- 21. 從我有一點麻煩搞清楚如何從一個字符串中刪除某些文字字符串
- 22. 字符串的固定長度排列
- 23. 我想在日期字符串T之前有一個字符串
- 24. Java:以設定的長度分割一個字符串
- 25. 找到一個字符串的長度
- 26. 最好的方式找到一個字符串的第一部分排除某些字符
- 27. 排除某些字符串打擊
- 28. 如何在一些字符串的長度不同時格式化幾個字符串以獲得等間距
- 29. 在一個NSString某些字符串
- 30. grep的:某些字符串
您描述了一個O(n log n)算法,該算法的初始實現爲O(n):只是迭代一次,記錄最長的字符串長度,然後再次獲取該長度的所有字符串兩者可以合併,但可能不會更快)。 – perelman 2012-02-13 04:46:41
@佩雷爾曼:哇,這麼簡單卻很聰明。謝謝! – Tim 2012-02-13 04:50:46