最后一个命令应该打印" printcat"但事实并非如此。那是为什么?
ArrayList<String[]> outerArr = new ArrayList<String[]>();
String[] myString1= {"hey","hey","hey","hey"};
outerArr .add(myString1);
String[] myString2= {"you","printcat","you","you"};
outerArr .add(myString2);
System.out.println(Arrays.toString(outerArr.get(1)));
System.out.println(outerArr.get(1).get(1));
答案 0 :(得分:1)
我不认为它是二维数组列表。它只是一个包含字符串数组作为数据的Array-List。
您可以使用System.out.println(outerArr.get(1)[1]);
来获得结果。
outerArr.get(1)
将返回String[]
,即{"you","printcat","you","you"}
,然后您可以使用outerArr.get(1)[1]
,这将在第一个索引处返回“printcat”元素。
答案 1 :(得分:0)
List
,ArrayList
和数组([]
)都是不同的东西(虽然前两个是相关的,但它们都是类似的东西)。如果你想要2D的东西,这意味着你使用了2次。例如,2D List
看起来像List<List<String>>
,2D数组看起来像String[][]
。你所拥有的是一个数组列表,它不是2D数组,也不是2D列表。你最想要的是List<List<String>> outerArr = new ArrayList<List<String>>();
。其余的你应该弄清楚自己。
答案 2 :(得分:0)
我终于明白了!由于Arraylist存在于Array中,因此您必须将Array作为普通数组处理。所以这很好。
System.out.println(outerArr.get(1)[1]);