尝试将1D向量添加到2D向量时遇到问题。
我写了如下的特定代码
Vector<Vector<String>> multiVector = new Vector<Vector<String>>();
Vector<String> singleVector = new Vector<String>();
singleVector.add("a,a,a");
System.out.println(singleVector); // [a,a,a]
multiVector.add(singleVector);
System.out.println(multiVector); // [[a,a,a]]
singleVector.clear();
singleVector.add("b,b,b");
System.out.println(singleVector); // [b,b,b]
multiVector.add(singleVector);
System.out.println(multiVector); // [[b,b,b], [b,b,b]]
在最后一行,我希望是“ [[a,a,a],[b,b,b]]”,但结果是“ [[b,b,b],[b,b,b]]”
怎么了 ?
提前致谢。
最佳答案
将singleVector
对象添加到multiVector
时,并没有复制它。因此,当清除singleVector
并将其更改为“ b,b,b”时,您还将“更改”添加到multiVector
的(相同)对象。
如果要更改singleVector
而不修改multiVector
,则应使用singleVector = new Vector<>()
而不是clear()
对其进行修改。