java中的数组列表代码无法正常工作

时间:2014-12-14 18:02:39

标签: java

大家好我试图写一个没有指定大小的字符串数组列表,我设置了一个带有哨兵的for循环来控制输入量,但它似乎不起作用,这是鳕鱼的一块我认为有问题,请帮助!

    public static void main(String args[])
{
    ArrayList<String> a=new ArrayList<String>();

    String string;
    String string2;
    char[] string1=new char[1];
    char c;

    for(int i=0;!"null".equals(a.get(i));i++)
    {   
        string=input.nextLine();
        a.add(i,string);
    }

3 个答案:

答案 0 :(得分:0)

我认为你收到了一个错误。我建议您阅读错误,如果您不理解,您应该搜索它或将其包含在问题中。

在这种情况下,您的测试会被破坏。你没有null值或"null"(这不是同一个东西)实际上你没有元素0这就是它抛出异常的原因。

一个简单的解决方案是在阅读时检查您阅读的内容。

List<String> a = new ArrayList<String>();
while(input.hasNext())
    a.add(input.readLine());

答案 1 :(得分:0)

!"null".equals(a.get(i))只会检查a.get(i)返回的字符串是否不等于"null"。我想你要做的就是检查a.get(i) == null,这不会有效,因为从列表大小的列表中请求一个项目的项目会抛出java.lang.IndexOutOfBoundsException

要正确迭代List,请使用foreach循环:

for(Object o : list) {
    //Execute your code
}

答案 2 :(得分:0)

我认为我必须得到一个假值的部分!“null”.equals(a.get(i))不能正常工作,因为程序没有退出循环