我正在实现一个Android应用程序,它从Web服务接收一个字符串的json数组。这个数组可能非常大(超过500个条目)。我正在将此数据解析为Vector对象。在应用程序中,用户可以在此向量中添加字符串,但必须在字符串的开头添加字符串。
现在我正在做以下事情来实现它:
Collections.reverse(myVector);
myVector.add(newString);
Collections.reverse(myVector);
还有其他更便宜的方法吗?
感谢名单
答案 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)