gpt4 book ai didi

java - 降低 HashMap 优化逻辑的复杂性 值被替换为包含段落字符串数组的键?

转载 作者:行者123 更新时间:2023-12-01 10:21:14 27 4
gpt4 key购买 nike

我有一个名为 paragraphObject Array 和一个名为 g_hMapValuesHashmap 对象。我在这段代码中所做的是迭代整个数组 paragraph 并将其放入文本中并替换与其 HashMap 值相对应的字符串(如果与键匹配) .

Note :- Please don't take care of class Text. it is working fine to me. What i need to do is optimize the logic (Nested Loop), because my paragraph may contains hundreds of thousands of records.

for(String keys : this.g_hMapValues.keySet()){ //hmapValues have some 20-30 key pair Values

for (Object text : paragraph) { //paragraph may Contains 100000 of record.
Text textElement = (Text) text;
System.out.println(textElement.getValue());
if (textElement.getValue().equalsIgnoreCase(keys)) {
textElement.setValue(String.valueOf(this.g_hMapValues.get(keys)));
}
}
}

我的键数量有限,但它可能存在于多个段落中,而且也可能存在很多次。我没有找到任何优化的逻辑来做到这一点,并且它消耗了大量时间来响应 REST 服务

我需要优化此迭代,因为在调试过程中我发现此迭代比平常花费更多时间。

最佳答案

您不必遍历 HashMap 的keySet。仅迭代 paragraph 数组并检查 map 是否包含当前 textElement。示例:

for (Object text : paragraph) { //paragraph may Contains 100000 of record.
Text textElement = (Text) text;
System.out.println(textElement.getValue());
if (this.g_hMapValues.contains(textElement.getValue())) {
textElement.setValue(String.valueOf(this.g_hMapValues.get(keys)));
}
}

如果区分大小写有问题,您可以查看问题 Case insensitive string as HashMap key .

关于java - 降低 HashMap 优化逻辑的复杂性 值被替换为包含段落字符串数组的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35603044/

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