为了账号安全,请及时绑定邮箱和手机立即绑定

如何并排输出两个不同长度的数组列表

如何并排输出两个不同长度的数组列表

开满天机 2022-05-25 17:23:04
我删除了我以前的帖子.. 这是我的问题的信息以及如何重现该问题因为用户输入了正确数量的字符串以匹配 originalR6 长度,所以一切都变得很花哨。但是当说用户输入的字符串比 originalR6 少时,所以现在 originalR6 比 userInputR6 大。编译时返回索引超出范围 要查看手头的问题,请在 userInput 方法中注释掉 nomad,maverick,lion 并取消注释 nomad,maverick    public static void main(String[] args) {    TestMain main = new TestMain();    main.addAll();    //user input    main.userInput();    main.printAll();}ArrayList<String> originalR6 = new ArrayList<String>();ArrayList<String> userInputR6 = new ArrayList<String>();public void addAll() {    //Our set list of characters    Collections.addAll(originalR6,"nomad", "maverick", "lion");}public void userInput() {    userInputR6.add("nomad");    userInputR6.add("maverick");    userInputR6.add("lion");    //--------------   // userInputR6.add("lion");   // userInputR6.add("lion");}public void printAll() {    for (int i = 0; i <originalR6.size() ; i++) {        System.out.println((i+1) + ". " + originalR6.get(i) + "\t" + (i+1) + ". " + userInputR6.get(i));    }}}
查看完整描述

2 回答

?
宝慕林4294392

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      


查看完整回答
反对 回复 2022-05-25
?
千巷猫影

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错误,打印出的元素将简单地忽略较长数组/列表的其余部分。


查看完整回答
反对 回复 2022-05-25
  • 2 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信