Я пытаюсь вставить целочисленные значения в список. После того, как значения будут вставлены, я буду проверять, имеют ли текущие и следующие значения разницу между 10. Если да, я добавлю 10 к первому значению и добавьте его обратно в список.
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(20);
arrayList.add(40);
arrayList.add(50);
arrayList.add(70);
arrayList.add(90);
ListIterator<Integer> iterator = arrayList.listIterator();
int firstVal = 0;
int secVal = 0;
while (iterator.hasNext()) {
if (iterator.hasPrevious()) {
firstVal = iterator.previous();
iterator.next();
}
secVal = iterator.next();
System.out.println("FirstValue " + firstVal);
System.out.println("secVal " + secVal);
if (firstVal != 0) {
if ((secVal - firstVal) > 10) {
//iterator.previousIndex();
iterator.add(firstVal + 10);
firstVal = 0;
iterator.next();
}
}
}
System.out.println("iterator " + iterator.toString());
}
Две вещи, которые я не могу заставить работать правильно.
Во-первых, когда я пытаюсь добавить значение разности обратно в список, оно не добавляется к правильному индексу. Например, первое значение равно 20, а второе - 40, новое значение 30 добавляется после 40 .
Во-вторых, здесь не создается пропущенное значение между 70 и 90, то есть 80.
Пожалуйста, поправьте меня в логике, которой я здесь не вижу.
спасибо за ваше время.