Java - 我有一个字符串的HashSet,我想以某种方式按它们的长度排序这些字符串

时间:2012-02-13 04:40:57

标签: java string data-structures hashset

我真的只需要一些方法来查找hashSet中具有最大长度的所有字符串(无论是一个字符串还是多个字符串)。我想我应该首先以某种方式对字符串长度进行排序,然后可以迭代它(从最长的字符串到最短的字符串,所以我可以在看到所有最长的字符串之后停止迭代)。任何人都可以帮我弄清楚如何最好地解决这个问题(主要是关于如何有效地找出如何按长度排序)?感谢。

1 个答案:

答案 0 :(得分:1)

将字符串存储在HashSet中以便快速查找所获得的效率在尝试查找最长的字符串时无法帮助您。您需要更新数据结构。

一种选择是存储两个独立的数据结构 - TreeSet<Set<String>>个字符串集,其中TreeSet的比较器只是比较字符串的长度,再加上前面的HashSet }。您可以通过更新TreeSet中的相应集合来有效地将字符串插入此混合数据结构中,以包含新字符串,并像以前一样将字符串插入HashSet。它还可以让您通过查询TreeSet的最大元素来有效地查找所有最大的字符串。

希望这有帮助!