在阵列中移动元素?

时间:2013-04-07 22:20:32

标签: java arrays string elements shift

我想做一些字符串将以有序的方式向上移动的东西。例如:

迭代1:

Hello There
I am
Asking a question
To you

迭代2:

I am 
Asking a question
To you
Next String

我究竟会以最少内存密集的方式解决这个问题?感谢。

2 个答案:

答案 0 :(得分:1)

一种简单的方法是circular queue

循环队列可以实现为数组和指向第一个索引的指针。如果要更改第一个元素,只需要提前索引。当索引通过数组的末尾时,它将回滚到索引0。

使用循环队列:

  • 向上移动字符串不需要移动数组中的任何内容。
  • 队列中的所有条目都可以存储在一个数组中,这需要的内存少于链接实现。

答案 1 :(得分:0)

如果你没有义务使用数组,我会建议一个队列,用它来实现你想做的事情相当简单。

Queue<String> foo = new Queue<String>();
foo.offer("Hello"); //first element is hello
foo.offer("world"); //second element is world
String s = foo.poll(); //s = hello and now the first element of the queue is world