gpt4 book ai didi

java - 比较两个数组时如何显示另一个数组中缺少的字符串?

转载 作者:行者123 更新时间:2023-11-29 10:11:03 25 4
gpt4 key购买 nike

我正在尝试比较两个数组并显示哪些条目存在,哪些不存在。

例如 - 我的两个数组包含以下内容:

logArray: Test1, Test2, Test3, Test4, Test5
checkArray: Test1, Test2, Test3, Test4, Test5, Test6, Test7

我试图实现的结果是以下输出:

FOUND: Test1
FOUND: Test2
FOUND: Test3
FOUND: Test4
FOUND: Test5
NOT FOUND: Test6
NOT FOUND: Test7

我想我的代码已经很接近了,但是有些地方不对,NOT FOUND 显示的数量太离谱了。

    for (int i = 0; i < logArray.length; i++) {
for (int x = 0; x < checkArray.length; x++) {
if (logArray[i].equals(checkArray[x])) {
logsFound = logsFound + 1;
modelFound.addElement("<html><font color=#009933>FOUND: </font> " + logArray[x] + "</html>");
}
}
if (isFound == false) {
logsNotFound = logsNotFound + 1;
modelNotFound.addElement("<html><font color=#FF0000>NOT FOUND: </font> " + logArray[i] + "</html>");
}
}

编辑: 根据一些评论进行了调整,它现在正确显示 NOT FOUND,但是如果它在第一个数组数量内,它只会显示 NOT FOUND 的数量。因此,因为我的 logsArray 包含 9 个项目,但 checkArray 包含 10 个项目(如 list 下所示),它在 NOT FOUND 中显示总共 4 个。所以它也意味着显示 2VA.004.01.16。

isFound 在 for 循环之前声明

Picture

更新代码:

    for (int i = 0; i < logArray.length; i++) {
isFound = false;
for (int x = 0; x < checkArray.length; x++) {
if (logArray[i].equals(checkArray[x])) {
logsFound = logsFound + 1;
modelFound.addElement("<html><font color=#009933>FOUND: </font> " + logArray[x] + "</html>");
isFound = true;
}
}
if (isFound == false) {
logsNotFound = logsNotFound + 1;
modelNotFound.addElement("<html><font color=#FF0000>NOT FOUND: </font> " + checkArray[i] + "</html>");
}
}

最佳答案

您可以一次构建一个哈希集,以加快搜索速度。

Set<String> set = new HashSet<String>(logArray);
for(String item : checkArray)
{
if (set.contains(item)){
//emit found
} else {
//emit not found
}
}

关于java - 比较两个数组时如何显示另一个数组中缺少的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34293430/

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