【问题标题】:Shifting elements in an array?移动数组中的元素?
【发布时间】:2013-04-07 22:20:31
【问题描述】:

我想做一些能让琴弦有序向上移动的东西。例如:

迭代1:

Hello There
I am
Asking a question
To you

迭代 2:

I am 
Asking a question
To you
Next String

我将如何以最不占用内存的方式来解决这个问题?谢谢。

【问题讨论】:

  • 到目前为止你写了什么代码?
  • 我没有,但每次收到消息时,我都会从另一个数组中输入新字符串(例如“下一个字符串”)(这是一个 Minecraft 插件)
  • 移动数组中的元素需要移动所有元素。你被数组困住了吗?因为其他一些数据结构可能更适合这项任务。
  • 你为什么不先尝试?创造力问题?
  • @JavaNewb 我不知道如何开始

标签: java arrays string elements shift


【解决方案1】:

一个简单的方法是circular queue

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

使用循环队列:

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

【讨论】:

【解决方案2】:

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

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

【讨论】:

  • 注意:java.util.Queue 是一个接口。
  • 哦,我正要问为什么eclipse返回错误,谢谢!
  • upss 抱歉没有检查!你打算使用什么子类?
猜你喜欢
  • 2016-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多