Java 这项作业是如何进行的。。?
我遇到了一件我真的很难理解的新事物。。这就是我所做的,效果非常好Java 这项作业是如何进行的。。?,java,collections,Java,Collections,我遇到了一件我真的很难理解的新事物。。这就是我所做的,效果非常好 Vector<String[]> v = new Vector<String[]>(); v.add(s); String[][] s1 = new String[v.size][] v.toArray(s1); Vector v=new Vector(); v、 添加(s); 字符串[][]s1=新字符串[v.size][] v、 toArray(s1); 我的问题是
Vector<String[]> v = new Vector<String[]>();
v.add(s);
String[][] s1 = new String[v.size][]
v.toArray(s1);
Vector v=new Vector();
v、 添加(s);
字符串[][]s1=新字符串[v.size][]
v、 toArray(s1);
我的问题是,即使方法toArray()只使用一维数组作为参数,它是如何工作的。。?
我对java编程不太在行,因此正在寻求解释
提前感谢。很简单:
v
是一维数组的向量,toArray
返回向量中任何元素的一维数组(在本例中为一维数组)。结果是1-D数组中的1-D数组,通常称为2-D数组。Java中只有真正的1-D数组-看起来像是一个多维数组,实际上只是一个数组数组
因此,如果我们忽略字符串[]本身是一个数组这一事实,并将其替换为StringArray
,则我们得到以下代码:
Vector<StringArray> v = new Vector<StringArray>();
v.add(s);
StringArray[] s1 = new StringArray[v.size()];
v.toArray(s1);
Vector v=new Vector();
v、 添加(s);
StringArray[]s1=新的StringArray[v.size()];
v、 toArray(s1);
这看起来并不奇怪,对吧s1
是字符串数组的数组,v
是字符串数组的向量v.toArray()
将字符串数组数组作为参数,因此我们可以使用s1
作为参数。toArray()接受一维对象数组
字符串数组是一个对象
s1是字符串数组的数组
QED参数将“String[][]”视为“String[]”对象的“一维数组”
在本例中,Vector.toArray(T[]a)接受一个T的数组。让我们将泛型T替换为类型“String[](注意String[]是一个对象)。这意味着Vector.toArray(String[][]a)将String[][]作为参数