有效移动向量内容的算法

时间:2018-06-27 03:48:59

标签: java algorithm vector

我有一个尺寸为3的向量,该向量将不断变化,例如,如果我删除位置0的内容,我想移动剩余单元格的内容,使剩余单元格从0开始。

我目前正以这种方式(Java代码)执行此操作,但我感觉效率很低。

aux = posy[1];
posy[0] = aux;
aux = posy[2];
posy[1] = aux;
posy[2] = 0;

还有另一种更有效的方法吗?

1 个答案:

答案 0 :(得分:1)

您不需要任何辅助变量。

posy[0] = posy[1];
posy[1] = posy[2];
posy[2] = 0;

要以相反的方式移动,您将需要以相反的顺序进行操作。

没有其他改进可能。

如果您有很多元素(例如五个元素),我建议您研究ArrayDeque类。它允许两端插入和删除而无需移动元素。建议在注释中用指向@Jacob G.两端的索引来实现。仅需三个元素,您就可以认为它是过分杀伤力的。