-2
int sizeOfTheShortestList = webresult.size();
    for (int i=0; i<sizeOfTheShortestList; i++) {
        if (webresult1.get(i).equals(dbresult[i]) )
        {
          System.out.println("Equals..: " + webresult1.get(i));
     }
 }

从上面的代码中我发现错误请给出比较数组列表值和数组值的解决方案

4

7 回答 7

2

以arraylist为'al'。将数组作为'a'。

现在你需要比较'al'和'a'。

iterator it = new iterator(al);
int length = a.size();
int count=0;
for(int i=0;i<length; i++)
{
    if(it.next()==a[i]);
    {
        count++;
    }
}
if(count == length)
{
    System.out.println("Both are equal");
}
else
{
    System.out.println("Both are not equal");
}
于 2013-12-02T09:40:33.683 回答
0

假设你的数组列表比数组短(否则你会得到一个 IndexOutOfBounds 异常),你应该确保 webresult.get(i) 和 dbresult[i] 的类型是相同的。此外,“.equals()”仅适用于比较对象(例如字符串),不适用于原语。因此,如果 webresult.get(i) 和 dbresult[i] 是整数或字符,“.equals”将不起作用。您应该改用“==”。

于 2013-07-15T13:33:56.383 回答
0

你可以使用类似的东西ArrayList#retailAll

仅保留此列表中包含在指定集合中的元素。换句话说,从这个列表中删除所有不包含在指定集合中的元素。

webresult.retainAll(Arrays.asList(dbresult);
// Now webresult will only contain the values that were in webresult and are in dbresult
于 2013-07-11T06:43:38.677 回答
0

尝试这样的事情

int sizeOfTheShortestList = Math.min(webresult.size(), webresult1.length);
        for (int i=0; i<sizeOfTheShortestList; i++) {
            if (webresult.get(i).equals(webresult1[i]) {
                System.out.println("Equals..: " + webresult.get(i));
            }
        }

我希望我以正确的方式理解你的问题..否则请发表评论

于 2013-07-11T06:45:00.217 回答
0
  1. 首先,您需要比较 webresult 和 dbresult 的长度,因为如果它们的长度不同,您将得到 IndexOutOfBounds 异常。

  2. webresult.get(i) 是否与dbresult[i]的类型相同?

  3. 如果不使用默认值,问题中缺少的等于的实现也应该添加。

于 2013-07-11T06:46:16.367 回答
0

这取决于你得到什么样的错误。另一种解决方案是在您的 arraylist 上使用 toArray() 方法并比较 2 个数组。但是如果数据结构具有相同的长度,您的代码应该可以工作,因为您正在比较数组和数组列表中的元素,而不是集合本身。

于 2013-07-11T06:49:39.647 回答
0

您可以使用ArrayList#toArray()将列表转换为数组。

然后你可以使用Arrays#equals()来比较两个数组。

您要比较的对象必须覆盖Object#eqauls()

于 2013-07-11T06:47:25.247 回答