【发布时间】:2013-04-24 20:01:55
【问题描述】:
我有一个很大的Set<String>,其中包含很多单词,比如:
"aaa, cCc, dDD, AAA, bbB, BBB, AaA, CCc, ..."
我想对 Set 中的所有重复单词进行分组,忽略单词的大小写敏感性,然后将它们保存在 Vector<Vector<String>> 或其他任何内容中,因此每个 Vector<String> 项目将包含一组相似的单词,如下所示:
Vector<String>: aaa, AAA, AaA, ...
Vector<String>:抄送,抄送,...
Vector<String>: bbB, BBB, ...
我关心性能,因为这个 Set 包含很多单词。
【问题讨论】:
-
1/你提前知道目标字符串的完整列表吗?
-
2/ 你为什么使用 Vector 而不是 ArrayList 或 LinkedList?
-
当它们首先被“添加”到 Set 时,您能否替换“Set”实现以将值排序到内部结构中。我意识到这不是你问的,但似乎切换你的集合实现可能会使这更容易。
-
“我关心性能,因为这个 Set 包含很多单词。” 您是否足够关心是否已经在其上运行了分析器,或者您只是在猜测?
-
如果你关心性能,不要使用线程安全的Vector;请改用 ArrayList 或 HashSet。
标签: java set duplicates