gpt4 book ai didi

java - 使用 String[][] 模拟 contains()

转载 作者:行者123 更新时间:2023-12-02 00:21:27 24 4
gpt4 key购买 nike

我有两个 SQL 表。抓取 ResultSets 中的两个表后,我将它们存储在 String[][]s 中,按公共(public) id 列排序。这些表应包含相同的数据,但是一个表中的同一行可能与另一个表重复。为了检查是否每个 String[]表 A 中的数据在表 B 中至少存在一次,我需要构造一个有点高效的 contains() String[] 的 -esque 方法.

这是我到目前为止所拥有的,但我很困惑(也不确定是否有更有效的解决方案)。为其提供源表和目标表。需要每个 String[]在源表中并且(应该)遍历每个 String[]在目标表中找到源String[]的实例目标String[][]中的某个地方通过检查是否至少有一个 String[]与原来的String[]相匹配,逐个元素。谁能指出我正确的方向和/或填补空白?这不是家庭作业或任何作业,我正在重构一些代码并且正在犯严重的大脑放屁。谢谢!

    public boolean targetContainsSource(String[][] s, String[][] t) {
boolean result = true;

//For each String[] in String[][] s
for (int i = 0; i < s.length; i++) {

//For each String[] in String[][] t
for (int j = 0; j < t.length; j++) {

//For each String in t's String[]
for (int k = 0; k < t[0].length; k++) {
if (!s[i][k].equals(t[j][k])) {

}
}
}
}

return result;
}

最佳答案

可以使用Arrays.equals()删除最里面的循环.

对于第一个数组的每个元素,您应该定义一个 found boolean 变量,只有在第二个数组中找到该元素后,该变量才会设置为 true。一旦第二个循环完成,如果这个变量仍然为 false,则说明您找到了第一个数组中不在第二个数组中的元素,可以立即返回。

当然,一旦将此变量设置为 true,您就可以跳出第二个循环。

关于java - 使用 String[][] 模拟 contains(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10887411/

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