Java 将项目向右移动,然后将元素添加到数组中
我正在努力想办法解决这个问题。我正在处理一个项目,需要将数组中的所有元素向右移动,然后在索引0处添加新元素。我很清楚ArrayList会使这变得更容易,但我想坚持使用普通数组 它应该是什么样子 原件{2,3,4,null} 新的{1,2,3,4) 这是我的最新代码Java 将项目向右移动,然后将元素添加到数组中,java,Java,我正在努力想办法解决这个问题。我正在处理一个项目,需要将数组中的所有元素向右移动,然后在索引0处添加新元素。我很清楚ArrayList会使这变得更容易,但我想坚持使用普通数组 它应该是什么样子 原件{2,3,4,null} 新的{1,2,3,4) 这是我的最新代码 while (scnr.hasNext()) { for (int i = 0; i < count; i++) { if (scnr.hasNext()) { dat
while (scnr.hasNext()) {
for (int i = 0; i < count; i++) {
if (scnr.hasNext()) {
data[i + 1] = data[i];
}
}
data[0] = scnr.next();
count++;
}
scnr.close();
while(scnr.hasNext()){
for(int i=0;i
我的问题是我可以添加前2个元素,但第二个元素之后的元素都是相同的,即{2,3,3}而不是{1,2,3,4}
注意:我之所以使用count,是因为有许多空值我不想添加,也不想将它们添加到运行时复杂性中。正如karakfa所评论的,看起来在数组中移动的方式是从左到右,这意味着移动的第一个元素是成功的,但是之后的所有元素都是相同的 这样想:
index : 0 | 1| 2|...
element: 2 | 3| 4|...
如果从索引0开始,则覆盖索引1,因此新数组为:
index : 0 | 1| 2|...
element: 2 | 2| 4|...
如果您尝试将上一个值(3)复制到下一个索引,当它查找该3时,它将找到一个2,因为您已经重写了3
相反的方式会工作得更好。基本上你想改变你访问数组的方向。< /P>这是一个重复的操作吗?如果是这样,也许你想考虑使用链表来代替?或者如果数组是必须的,使用ARARYList,它已经为你的方便实现了这一点。你应该从结尾开始移动项目。提示:我们。方法来“移动”现有值。