如何比较java中的arraylist值和数组值

时间:2013-07-11 06:39:30

标签: java arrays list arraylist size

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));
     }
 }

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

7 个答案:

答案 0 :(得分:2)

将arraylist称为&#39; al&#39;。 将数组作为&#39; a&#39;。

现在你需要比较&#39; al&#39;和&#39; a&#39;。

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");
}

答案 1 :(得分:0)

您可以使用ArrayList#retailAll

之类的内容
  

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

webresult.retainAll(Arrays.asList(dbresult);
// Now webresult will only contain the values that were in webresult and are in dbresult

答案 2 :(得分: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));
            }
        }

我希望我能以正确的方式理解你的问题。另外请发表评论

答案 3 :(得分:0)

  1. 首先,您需要比较webresult和dbresult的长度,因为如果它们的长度不同,您将获得IndexOutOfBounds异常。

  2. webresult.get(i)与dbresult [i]具有相同的类型吗?

  3. 如果没有使用默认值,那么实现等于缺失的等号也应该添加。

答案 4 :(得分:0)

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

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

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

假设你的arraylist比数组短(否则你会得到一个IndexOutOfBounds异常),你应该确保webresult.get(i)和dbresult [i]的类型相同。此外,“。equals()”仅适用于比较对象(如字符串),而不适用于基元。因此,如果webresult.get(i)和dbresult [i]是整数或字符,“。equals”将无效。你应该使用“==”。