Если вы хотите проверить, находится ли объект в позиции, используйте IndexOf()
. Этот метод возвращает -1, если объект отсутствует в списке.
UPDATE
На вашем новом куске кода:
public static int GiveBackAverageID(Vector<DMatch> lista){
ArrayList<CMatch> workingList = new ArrayList<CMatch>();
for (DMatch t : lista){
if(t.imgIdx >= workingList.size() || t.imgIdx < 0)
{
// do something with wrong indices.
}
else
{
if(workingList.get(t.imgIdx) == null){
workingList.add(t.imgIdx, new CMatch(t.imgIdx,t.distance,1));
}else{
CMatch pom = workingList.get(t.imgIdx);
pom.setSummaDist(pom.getSummaDist()+t.distance);
pom.setCount(pom.getCount()+1);
workingList.set(t.imgIdx, pom);
}
}
}
}
Или то, что вы также можете сделать, - это создать больше возможностей в вашем workingList
:
public static int GiveBackAverageID(Vector<DMatch> lista){
// Creating more capacity in the constructor!
ArrayList<CMatch> workingList = new ArrayList<CMatch>(lista.size());
for (DMatch t : lista){
if(workingList.get(t.imgIdx) == null){
workingList.add(t.imgIdx, new CMatch(t.imgIdx,t.distance,1));
}else{
CMatch pom = workingList.get(t.imgIdx);
pom.setSummaDist(pom.getSummaDist()+t.distance);
pom.setCount(pom.getCount()+1);
workingList.set(t.imgIdx, pom);
}
}
}
В качестве лучшей альтернативы я бы использовал HashTable<int,DMatch>
.