我创建了一个二叉搜索树,我希望尽可能提高效率。添加节点时,我使用equalsIgnoreCase()
将其与String
进行比较(以防止重复)。
添加两个节点时,例如:"BOB"
和"bob"
。
例如:
将"BOB"
转换为ASCII = 066 079 066
将"bob"
转换为ASCII = 098 111 098
由于大写字母,您可以看到"BOB"
和"bob"
都有不同的值。
equalsIgnoreCase()
是否会将此作为一个条目接受而不管大小写?
这有助于提高效率吗?
答案 0 :(得分:2)
这很可能会破坏你的二叉树。有许多价值观(普通的,偶数)介于" bob"和" BOB"按字典顺序排列。例如:任何以小写字母开头的东西" a"或大写字母" C"或以上。如果他们中的任何一个人在你的树上,那么" BOB"会在那个节点向一个方向前进(" BOB"" Dog")而#34; bob"会进入另一个(" bob">" Dog")。这意味着你甚至没有机会比较" bob"和" BOB。"
你可以通过以下方式让它工作:
compareToIgnoreCase(String)
或toLowerCase()
或toUpperCase()
)