在Vector的开头插入一个元素

时间:2013-04-16 16:44:28

标签: java performance collections vector

我正在实现一个Android应用程序,它从Web服务接收一个字符串的json数组。这个数组可能非常大(超过500个条目)。我正在将此数据解析为Vector对象。在应用程序中,用户可以在此向量中添加字符串,但必须在字符串的开头添加字符串。

现在我正在做以下事情来实现它:

Collections.reverse(myVector);
myVector.add(newString);
Collections.reverse(myVector);

还有其他更便宜的方法吗?

感谢名单

5 个答案:

答案 0 :(得分:4)

您可以使用java.util.LinkedList吗?然后,您可以使用addFirst,因为它是一个双向链接列表,所以应该更有效率。

答案 1 :(得分:1)

为什么我们不能使用Vector.add(index,element)api,索引为1?

还是我错过了什么?

答案 2 :(得分:1)

更快捷的方法是使用.add(int, E) ...

直接插入向量的开头
myVector.add(0, newString);

答案 3 :(得分:1)

您可以使用Vector#add(index, element)方法。但是,每次都会降低元素的成本。

但是,为了尽可能避免成本,请在开头使用Collections.reverse,然后反转,然后让用户添加字符串,直到完成为止。添加到末尾(追加)不需要将现有元素移开。一旦完成,再将其反转一次以获得正确的订单。总逆转 - 仅为2。

答案 4 :(得分:0)

你必须使用矢量吗?如果使用ArrayList,则可以使用list.add(0, element)

在前面插入元素