Выполнить проверку массива больше, чем количество массивов в Java

Toni спросил: 13 октября 2017 в 07:28 в: java

Я загружаю такие XML-файлы для проверки полных последовательностей в Java и получаю значение из XML. Это значение сохраняется в массиве.

Затем я проверю, какие последовательности отсутствуют в файлах, поэтому мне нужно отсортировать значения и сравнить минимальное значение с первым значением массива. Затем проверьте минимальное значение + 1 по отношению ко второму значению массива и т. Д.

Цикл for, я могу только запустить, как часто значения сохраняются в массив. В примере это 6 раз. Но мне нужно запустить его 8 раз.

Пример:

XML files with SequenceNumber from 68 to 75.
XML files with SequenceNumber 73 and 74 are missing.

Проверка должна быть выполнена 8 раз (68, 69, 70, 71, 72 , 73, 74, 75), но он выполняется только 6 раз (у меня только 6 файлов / 6 значений массива).

Как можно выполнить проверку, если SequenceNumber в порядке или отсутствует, как часто его необходимо, поэтому от минимального до максимального значения?

ArrayList seqNrList = new ArrayList<>();
seqNrList.add(doc.getElementsByTagName("SequenceNumber").item(0).getTextContent());
Collections.sort(seqNrList);
int seqNr; //currentValue
int instanceCounter = Integer.valueOf((String) Collections.min(seqNrList));int seqsizemin = Integer.valueOf((String) Collections.min(seqNrList));
int seqsizemax = Integer.valueOf((String) Collections.max(seqNrList));
int seqruns = seqsizemax - seqsizemin + 1;System.out.println("first Sequence: " + Collections.min(seqNrList));
System.out.println("last Sequence: " + Collections.max(seqNrList));
System.out.println("max runs: " + seqruns);for (int i = 0; i < seqNrList.size(); i++) {
    seqNr = Integer.valueOf((String) seqNrList.get(i));
    if (instanceCounter == seqNr) {
        System.out.println("Sequence " + seqNrList.get(i) + " ok");
    }
    else {
        System.out.println("Sequence " + instanceCounter + " Missing");
    }
    instanceCounter++;
}

Когда я запустил его таким образом, я получил следующий результат:

first Sequence: 68
last Sequence: 75
max runs: 8
Sequence 68 ok
Sequence 69 ok
Sequence 70 ok
Sequence 71 ok
Sequence 72 ok
Sequence 73 Missing

ожидается:

first Sequence: 68
last Sequence: 75
max runs: 8
Sequence 68 ok
Sequence 69 ok
Sequence 70 ok
Sequence 71 ok
Sequence 72 ok
Sequence 73 Missing
Sequence 73 Missing
Sequence 75 ok

Как это можно сделать? В чем моя ошибка на данный момент?

Спасибо в AdvanceToni


0 ответов