gpt4 book ai didi

java - 使用 hashCode 获取数组 java 元素的索引

转载 作者:行者123 更新时间:2023-11-30 01:57:44 26 4
gpt4 key购买 nike

我有一个包含很多单词的字符串数组。我希望获取数组中包含的单词的索引(如果不包含则为-1)。

我首先创建了一个循环来搜索数组中的所有元素,同时递增变量,当找到它时,我返回变量的值。

然而,数组可能非常非常大,因此搜索所有元素的速度非常慢。我决定在字符串数组中添加新单词之前,我将使用 hashCode() % arrayLength 来获取应该放置它的位置的索引。然后,为了取回索引,我只需重用 hashCode() % arrayLength 即可立即知道它是什么索引。

问题在于有时会出现“冲突”,两个元素在数组中可以具有相同的索引。

有人知道如何处理吗?或者还有其他方法可以更快地获取元素的索引吗?

最佳答案

您正在尝试实现 Open Addressing使用数组。除非这是一个家庭作业,否则 Java 标准库已经有类来解决搜索和碰撞问题。

您可能想使用HashSet来检查String是否存在。它在幕后使用 HashMap 实现 Separate Chaining解决冲突。

String[] words = { "a" };
Set<String> set = new HashSet<>(Arrays.asList(words));
return set.contains("My Word") ? 1 : -1;

关于java - 使用 hashCode 获取数组 java 元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53817586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com