在Java ArrayList中的无效索引处添加元素时不抛出IndexOutOfBoundsException

rah*_*ver -3 java arraylist indexoutofboundsexception

如果我们在这里读取add函数的ArrayList文档,显然在无效索引处添加元素会抛出IndexOutOfBoundsException.但为什么以下代码不会抛出任何异常?

public static void main(String args[]){
        List cities = new ArrayList();
        cities.add("Atlanta");
        cities.add("Boston");

        try {
            for (int i = 10000000; i < cities.size(); i++){
                try {
                    cities.add(i, "+");
                } catch (Exception e) {
                    e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
                }
                System.out.println(cities.size());
            }
        } catch (Exception e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }

        System.out.println(cities);

    }
Run Code Online (Sandbox Code Playgroud)

输出:

[Atlanta, Boston]

Process finished with exit code 0
Run Code Online (Sandbox Code Playgroud)

我目前正在使用jdk 7并运行intellij的想法.

Kay*_*man 7

永远不会输入您的for循环,因为1000000> cities.size()(即2).

你的代码是完全错误的.