抛出超出界限的多维字符串数组

时间:2015-11-22 02:53:09

标签: java arrays multidimensional-array

我对Java很新。我试图在这个多维数组的末尾添加一个名称。

    String[][] cartoons = new String [][] {
    { "Flintstones", "Fred", "Wilma", "Pebbles", "Dino" },
    { "Rubbles", "Barney", "Betty", "Bam Bam" },
    { "Jetsons", "George", "Jane", "Elroy", "Judy", "Rosie", "Astro" },
    { "Scooby Doo Gang", "Scooby Doo", "Shaggy", "Velma", "Fred", "Daphne" } };


  cartoons[0][5] = "VELMA";

  System.out.println(cartoons[0][5]);

正如你所看到的,它被抛出了界限。

run:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
    at javaapplication2.JavaApplication2.main(JavaApplication2.java:46)
Java Result: 1

我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

cartoons[0]中有5个元素,表示从cartoons[0][0]cartoons[0][4]的访问索引

在这里

  

漫画[0] [5] =" VELMA&#34 ;;

您想要访问实际超出范围的第6个索引

这就是你获得

的原因
  

线程中的异常" main" java.lang.ArrayIndexOutOfBoundsException:5       在javaapplication2.JavaApplication2.main(JavaApplication2.java:46)

答案 1 :(得分:0)

在java中,数组不可调整大小,但您可以使用list:

    List<List<String>> parentList = new ArrayList<>();
    // initialize the parent list
    for (String[] strs : cartoons) {
        ArrayList<String> subList = new ArrayList<>();
        subList.addAll(Arrays.asList(strs)); // initialize the sub list
        parentList.add(subList);
    }

    parentList.get(0).add("VELMA"); // add the element

    System.out.println(parentList.get(0).get(5));