我知道HashSet<String>
数据结构可以存储唯一的字符串,并说明字符串是否存在O(1)复杂性,因为它使用哈希码。如果我想忽略字母案例,可以达到同样的复杂性吗?下一个用例应该有效:
Set<String> set = new IgnoreLetterCaseSet();
set.add("New York");
set.contains("new york") == true;
set.contains("NEW YORK") == true;
set.each(it -> print it) ---> prints "New York"
是否可以实现这样的数据结构?
答案 0 :(得分:6)
也许TreeSet正在寻找什么?
TreeSet<String> ts=new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
答案 1 :(得分:3)
只需使用原始字符串作为值的HashMap,使用密钥
的小写字母Thread.dumpStack();
答案 2 :(得分:0)
我不熟悉HashSet
,但这里有两个关于如何做到这一点的想法:
HashSet
。 string
持有所有具有相同密钥的New York
列表。也就是说,NEW YORK
和new york
都位于密钥major.minor 52.0
下的列表中。