我需要比较 2 个向量的元素,但它不断抛出异常。请帮忙,我想知道我是否做了错误的比较,因为向量使用方法。
for (int i=0; i <= vect.size(); i++)
{
if (i >0 && i <= vect.size())
{
if( vect.get(i) == vect.get(i--) ) //EXCEPTION HERE
{
vect2.add(vect.get(i)+ "");
}else{vect2.add(vect.get(i++));}
}
}
永远不要更改for-loop
中i
的值!
将i--
替换为i-1
,i++
替换为i+1
,并根据i
调整条件以检查正确的值范围。
第一个问题:
for (int i=0; i <= vect.size(); i++)
↑
当您将其更改为<
时会出现第二个问题,因为您仍然有 vect.get(i++)
.
您需要小心索引,因为数组是从零开始的,并且Vector
内部由数组备份,索引在 [0, size-1] 之间运行。