2 回答
TA贡献2021条经验 获得超8个赞
您应该打印到较小的索引,然后 ^rint 2 的较大列表,我使用printf它,因为它允许获得对齐:
public void printAll() {
int minSize = Math.min(originalR6.size(), userInputR6.size());
for (int i = 0; i < minSize; i++) {
System.out.printf("%d. %-10s %d. %-10s%n", (i + 1), originalR6.get(i), (i + 1), userInputR6.get(i));
}
if (originalR6.size() < userInputR6.size()) {
for (int i = minSize; i < userInputR6.size(); i++) {
System.out.printf("%d. %-10s %d. %-10s%n", (i + 1), "/", (i + 1), userInputR6.get(i));
}
} else if (originalR6.size() > userInputR6.size()) {
for (int i = minSize; i < originalR6.size(); i++) {
System.out.printf("%d. %-10s %d. %-10s%n", (i + 1), originalR6.get(i), (i + 1), "/");
}
}
}
要得到
案子if
1. nomad 1. nomad
2. maverick 2. maverick
3. lion 3. /
案子 else if
1. nomad 1. nomad
2. maverick 2. maverick
3. lion 3. lion
4. / 4. lion
5. / 5. lion
TA贡献1829条经验 获得超7个赞
索引两个“数组”数据时,如果您尝试索引数组/列表中的最后一个元素,您将得到index out of range,因为在最后一个元素之后只有深渊。
for (int i = 0; i <originalR6.size() && i <userInputR6.size(); i++) {
System.out.println((i+1) + ". " + originalR6.get(i) + "\t" + (i+1) + ". " + userInputR6.get(i));
}
i <userInputR6.size()作为附加条件添加到您的 for 循环条件中将停止您的index out of range错误,打印出的元素将简单地忽略较长数组/列表的其余部分。
添加回答
举报