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

标签 java arrays

我想制作一个程序,对于每个新条目,将每个条目移动 +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/

相关文章:

java - 从 EditText 添加到 ArrayList

java - Android 模拟器中的 RFID 标签模拟

java - OBJECT_NOT_FOUND 尝试获取存储在 GCS 中的图像的 ServingUrl

java - 从数组列表中读取并与输入字符串进行比较

c - 从c中的双向链表中删除元素

java - 找不到符号抛出 IndexOutOfBoundException

java - 为什么我们不能调用 servlet 构造函数而不是 init 方法来初始化配置参数?

php - Foreach 循环仅返回多维数组 PHP 上的第一个索引

javascript - Firestore 更新数组字段中的单个项目

java - 单元测试-排序数组