我有一个尺寸为3的向量,该向量将不断变化,例如,如果我删除位置0的内容,我想移动剩余单元格的内容,使剩余单元格从0开始。
我目前正以这种方式(Java代码)执行此操作,但我感觉效率很低。
aux = posy[1];
posy[0] = aux;
aux = posy[2];
posy[1] = aux;
posy[2] = 0;
还有另一种更有效的方法吗?
答案 0 :(得分:1)
您不需要任何辅助变量。
posy[0] = posy[1];
posy[1] = posy[2];
posy[2] = 0;
要以相反的方式移动,您将需要以相反的顺序进行操作。
没有其他改进可能。
如果您有很多元素(例如五个元素),我建议您研究ArrayDeque
类。它允许两端插入和删除而无需移动元素。建议在注释中用指向@Jacob G.两端的索引来实现。仅需三个元素,您就可以认为它是过分杀伤力的。