这两种方法是否相互替代,或者它们在向量中添加元素时是否具有任何特定的作用,如性能明智?
答案 0 :(得分:2)
insertElementAt
在给定索引处插入给定元素,并在其后移动所有元素。例如,如果要在索引2中插入元素,则插入前索引为2的元素现在位于索引3中,索引3处的元素现在为4,等等。
另一方面,set
只是覆盖给定索引处的元素。
请考虑以下代码段:
Vector<String> vec = new Vector<>(Arrays.asList("a", "b", "c", "d"));
System.out.println(vec);
vec.insertElementAt("e", 2);
System.out.println(vec);
vec.set(2, "f");
System.out.println(vec);
对insertElementAt
的调用会插入&#34; e&#34; &#34; b&#34;和&#34; c&#34;。对set
的调用会覆盖&#34; e&#34;与&#34; f&#34;。即,结果输出为:
[a, b, c, d]
[a, b, e, c, d]
[a, b, f, c, d]
答案 1 :(得分:1)
insertElementAt()
会将新元素添加到矢量中,保留前面的元素。 set()
将覆盖给定索引处的元素。
Vector<String> vector = new Vector<>();
vector.add("A"); // A
vector.add("B"); // A B
vector.insertElementAt("C", 1); // A C B
vector.set(1, "D"); // A D B