У меня есть два массива - retrievedList с 15 элементами и originalList с 3 элементами. то есть одно является подмножеством другого. Я сравниваю эти два массива, чтобы проверить, отображаются ли 3 элемента оригинального списка в том же порядке в retreiveList.
По сути, метод циклически перебирает каждый индекс в retrievedList и сравнивает его с originalList, когда найдено совпадение, счетчик увеличивается. Если размер счетчика совпадает с размером originalList, тест пройден, иначе произойдет сбой.
Теперь я получаю ошибку java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
Я не уверен, почему метод получает индекс (3) и как это остановить!
Я сделал sysOut счетчика, который выдает результат 0 0 0 0 0 0 0 1 2 3
Это говорит мне о том, что (i) счетчик был увеличен до 3. (ii) он зациклен в 10 раз, в то время как он должен был зацикливаться в 15 раз.
Я попытался завершить цикл for после оператора if-else ... он не работает .. зацикливался только один раз.
Я пытался поставить разрыв в операторе if, пытаясь помешать ему перейти в index (3), не сработало.
вместо i = 0, я попробовал int = -1. Динт работа.
Не могу понять проблему, пожалуйста, помогите.
try{
int counter = 0;
for(int i=0; i<retrievedList.size(); i++, ++counter){
if(retrievedList.get(i).equals(originalList.get(counter))){
System.out.println(counter);
}
} //for loop closed
if(counter==originalList.size()){
Assert.assertTrue(true, "Arrays are in Order" - Test Passed!)
}else{
Assert.assertTrue(false, "Arrays are not in Order" - Test failed!)
}
} catch (Exception e){
logger.error("test for components has failed");
e.printStackTrace();
}
У меня нет цикла "=" для