gpt4 book ai didi

java - 每当有新元素加入时,如何让数组中的元素移动 +1

转载 作者:行者123 更新时间:2023-12-02 00:53:20 24 4
gpt4 key购买 nike

我想制作一个程序,对于每个新条目,将每个条目移动 +1。

例如

myArray[0]= 托马斯

在另一个条目之后它变成:

myArray[0] = 弗雷德

myArray[1] = 托马斯

.

5个条目后,它变成.

myArray[4]=托马斯;

import java.util.Scanner;
import java.util.Arrays;
public class UB5{
static String input(String name){
Scanner user_input = new Scanner(System.in);
System.out.println("Enter your name: ");
name = user_input.nextLine();
return name;
}
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
String myArray[] = new String[5];
myArray[0] = "";
myArray[1] = null;
myArray[2] = null;
myArray[3] = null;
myArray[4] = null;
String s = "";
String temp = myArray[0];
myArray[0] = myArray[1];
myArray[1] = temp;
for(int i = 0; i < myArray.length; i++){
myArray[i] = input(s);
if(myArray[i] == null){
myArray[i] = myArray[i+1];
}
}

System.out.println(Arrays.toString(myArray));
}
}

我得到的不需要的输出:

Enter your name:
Thomas
Enter your name:
Peter
Enter your name:
Fred
Enter your name:
Bruce
Enter your name:
Angelo
[Thomas, Peter, Fred, Bruce, Angelo]

最佳答案

我不会为此使用数组,我会使用 List 之一实现(可能是 ArrayList )并通过 add(index,element) 在其开头插入。 (我猜你需要检查 size() 并执行 remove(index) 来删除从末尾掉下来的那个,否则你的列表只会不断增长。)

如果需要使用数组,我可能会使用 arraycopy移动元素,然后分配将新条目放在索引 0 处:

System.arraycopy(myArray, 0, myArray, 1, myArray.length - 1);
myArray[0] = newEntry;
<小时/>

Bill pointed out ,不能将 ==!= 与字符串一起使用。我建议阅读this question的答案有关详细信息。

关于java - 每当有新元素加入时,如何让数组中的元素移动 +1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59037002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com