Я пытаюсь изменить массив массивов. Таким образом, я хочу, чтобы цикл с отрицательным итератором (для доступа к начальным значениям массива) и положительным итератором (для записи в новый массив). Вот код, который у меня есть на данный момент. (Для тех, кто знает, какую биологию, этот код пишет обратный комплемент строки ДНК.)Лучшая практика с несколькими итераторами цикла
final char[] DNA = {'G','A','T','T','A','C','A'};
char[] revComp = new char[DNA.length];
int j = 0;
for (int i = DNA.length - 1; i >= 0; i--) {
switch (DNA[i]) {
case 'A': DNA[i] = 'T'; break;
case 'T': DNA[i] = 'A'; break;
case 'C': DNA[i] = 'G'; break;
case 'G': DNA[i] = 'C'; break;
}
revComp[j] = DNA[i];
j++;
}
Как вы можете заметить, у меня есть нормальный я итератор и дополнительный J итератор, который я просто не сделал знать, куда положить. Это лучший способ приблизиться к такой ситуации (где нужны два итератора), или было бы лучше, если бы я сделал это по-другому?
Я думаю, вы должны больше беспокоиться о людях, которые не знают биологию и объяснить, что он делает и почему можно было бы необходимо два итератора, чтобы сделать это. – ChiefTwoPencils
Вы можете написать '' revComp [DNA.length - 1 - i] = DNA [i]; '. Таким образом вам не нужно '' j''. – Aero
По-видимому, не нужно двух итераторов! Однако для тех, кому интересно, дополнительную информацию об этой проблеме можно найти здесь: http://rosalind.info/problems/revc/ Чтобы узнать больше об этой проблеме, нажмите «нажмите, чтобы развернуть». – randomraccoon