【问题标题】:Print multiple values in Array list Java [duplicate]在数组列表Java中打印多个值[重复]
【发布时间】:2017-10-12 04:21:32
【问题描述】:

给定java代码:

private List<String> list_from = new ArrayList<String>();
private List<String> list_dest = new ArrayList<String>();

list_from 的值为:

[v5, v3, v5, v1, v1, v6, v6, v3, v4, v5, v4, v6]

list_dest 的值是:

[v3, v5, v1, v5, v6, v1, v3, v6, v5, v4, v6, v4]

我正在使用循环 for 通过 if 语句打印出 list_from 中的值:

for(int i=0;i < list_from.size();i++){                    
    if(list_dest.get(i+1) == list_from.get(i)){
        System.out.println(list_from.get(i));
    }
}

它给出了正确的结果,但在 if 语句中出现未知错误。

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 18, Size: 18

非常感谢您的帮助!

【问题讨论】:

  • if 语句出现未知错误。 这绝不是未知错误...发布堆栈跟踪
  • 它给出了正确的结果,这肯定不能给出正确的输出 --> if(list_dest.get(i+1) == list_from.get(i)) ,您正在将字符串与 == 进行比较。
  • 请不要使用浏览器的“返回”按钮来编辑您的问题。它破坏了其他人所做的编辑。而是使用您的问题下方的edit 链接或我在此处提供的链接
  • 请不要在您的问题中编辑解决方案。 Accept 下面给出的其中之一。或者用你得到的解决方案回答你自己的问题(但如果它等于下面的一个或多个,那么就接受它)
  • 我知道您是该网站的新手,所以我建议您使用tour,并学习How to Ask,这将大大改善您的问题并且不会被否决。下次在问之前做一个Google search

标签: java arraylist


【解决方案1】:

比较字符串应该由string.equals(string2)完成。
字符串是对象。比较对象时应始终使用equals。 此外,您正在比较数组中的太多索引。

您的代码应如下所示:

for(int i=0;i < list_from.size()-1;i++){                    
    if(list_dest.get(i).equals(list_from.get(i+1))){
        System.out.println(list_from.get(i));
    }
}

【讨论】:

    【解决方案2】:

    list_dest.get(i+1),这就是问题所在。 在最后一次迭代中,i 的值是可能的最大索引。当您向其添加 1 时,它会给出 arrayOutOfBoundsException。

    最好使用 string.equals() 方法来比较字符串。

    【讨论】:

      【解决方案3】:

      多个问题。首先,将循环条件更改为&lt;list_from.size()-1

      其次,将字符串与.equals() 进行比较,而不是==

      代码变成

      for(int i=0;i < list_from.size()-1;i++){                    
          if(list_dest.get(i+1).equals(list_from.get(i))){
              System.out.println(list_from.get(i));
          }
      }
      

      【讨论】:

      • 我明白了。太感谢了!因为代码有很多我必须处理的东西。没有提到它。现在开始工作了:)
      猜你喜欢
      • 2020-09-19
      • 2017-04-12
      • 1970-01-01
      • 2019-08-13
      • 2017-12-08
      • 2015-11-17
      • 2020-10-01
      • 1970-01-01
      • 2017-07-29
      相关资源
      最近更新 更多