我需要比较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++));}
}
}
答案 0 :(得分:2)
永远不要更改i
中的for-loop
值!
将i--
替换为i-1
,将i++
改为i+1
,并根据i
调整条件以检查正确的值范围。
答案 1 :(得分:1)
第一个问题:
for (int i=0; i <= vect.size(); i++)
↑
当您将其更改为<
时,会出现第二个问题,因为您仍然有vect.get(i++)
。
您需要注意索引,因为数组从零开始,而Vector
在内部由数组备份,索引在[之间]运行0,size-1]。