Я сделал этот метод (interleave), который принимает 3 массива в качестве входных данных, а затем возвращает массив, который имеет элементы каждого массива в порядке. Если в массиве нет элемента, то в конец массива добавляется «-».Почему этот метод не работает?
Пример: если эти массивы поданы в метод - ["1"; "2"; "3"], ["4"], ["5"; "6"], то он вернет этот массив -
["1"; "4"; "5"; "2"; "-"; "6"; "3"; "-"; "-"]
Но, когда я нахожу это, я ничего не получаю от вывода.
static String[] interleave(String[] xs, String[] ys, String[] zs) {
int length1 = xs.length;
int length2 = ys.length;
int length3 = zs.length;
int larLength = 0;
if (((length1 > length2) && (length2 > length3) || ((length1 > length3) && (length3 > length2)))) {
larLength = length1;
}
else if (((length2 > length1) && (length1 > length3) || ((length1 > length3) && (length3 > length2)))) {
larLength = length2;
}
else if ((length3 > length2) && (length2 > length1)) {
larLength = length3;
}
String[] result = new String[larLength*larLength];
for(int i = 0; i < (larLength*larLength - 1); i++) {
if (xs[i] != null) {result[i] = xs[i];}
else {result[i] = "-";}
if (ys[i] != null) {result[i+1] = ys[i];}
else {result[i+1] = "-";}
if (zs[i] != null) {result[i+2] = zs[i];}
else {result[i+2] = "-";}
}
return result;
}
Расчет длины кажется сложным. Должно быть просто '3 * max (length1, length2, length3)' – Thilo
Вы назначаете следующие элементы 'result' в следующем порядке: 0,1,2,1,2,3,2,3,4, .. . –
Большинство IDE предлагают режим отладки, где вы можете разместить точки останова и выполнить код, чтобы увидеть, что он делает http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc .user% 2Ftasks% 2Ftasks-debug-launch.htm или http://stackoverflow.com/questions/18977397/debug-java-program-step-by-step-in-eclipse – mmcrae