Java - 我有一个字符串的哈希集,我想以某种方式按字符串的长度对这些字符串进行排序

发布于 2025-01-04 13:33:38 字数 179 浏览 0 评论 0 原文

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

I really just need some way to find all the strings in the hashSet with the greatest length (whether it be one string or multiple). I figured I should sort the set on string length somehow first and then maybe iterate through it (going from longest strings to shortest so I can stop iteration after I've seen all the strings of greatest length). Can anyone help me figure out how best to go about this (mainly just concerned with finding out how to sort them by length efficiently)? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迷爱 2025-01-11 13:33:38

当您尝试查找最长字符串时,通过将字符串存储在 HashSet 中进行快速查找所获得的效率不会对您有帮助。您需要为此更新您的数据结构。

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

希望这有帮助!

The efficiency gained by storing the strings in a HashSet for fast lookups will not help you when trying to find the longest string. You'll need to update your data structure for that.

One option would be to store two separate data structures - a TreeSet<Set<String>> of sets of strings, where the comparator for the TreeSet just compares the length of the strings, plus the earlier HashSet. You could insert a string into this hybrid data structure efficiently by just updating the appropriate set in the TreeSet to contain the new string and inserting the string into the HashSet like before. It would also let you efficiently find all the largest strings simply by querying the TreeSet for its largest element.

Hope this helps!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文