Java 使用for循环将字符串[]添加到ArrayList中 扫描仪输入=新扫描仪(System.in); ArrayList联系人=新建ArrayList(); 字符串[]记录=新字符串[2]; int-x1=1; 而(x1==3){ 对于(int i=0;i

Java 使用for循环将字符串[]添加到ArrayList中 扫描仪输入=新扫描仪(System.in); ArrayList联系人=新建ArrayList(); 字符串[]记录=新字符串[2]; int-x1=1; 而(x1==3){ 对于(int i=0;i,java,arraylist,Java,Arraylist,我假设您尝试多次将数组添加到列表中。您应该在while循环的每次迭代中添加不同的数组: Scanner input = new Scanner(System.in); ArrayList<String[]> contact = new ArrayList<String[]>(); String[] record = new String[2]; int x1=1; while(x1==3){ for(int i=0;i<2;i++){ r

我假设您尝试多次将数组添加到列表中。您应该在while循环的每次迭代中添加不同的数组:

Scanner input = new Scanner(System.in);
ArrayList<String[]> contact = new ArrayList<String[]>();
String[] record = new String[2];
int x1=1;

while(x1==3){

    for(int i=0;i<2;i++){
        record[i]=input.nextLine();
    }
    contact.add(record);
    x1++;
}

while(x1我认为您的代码中有一个缺陷。我已尝试在下面解决它

while(x1<=3){
    String[] record = new String[2];
    for(int i=0;i<2;i++){
        record[i]=input.nextLine();
    }
    contact.add(record);
    x1++;
}

while(x1您应该在while循环中初始化字符串数组。这样您可以避免覆盖列表中的旧数组。如下所示

while(x1<=3){
    //create new string array
    String[] record = new String[2];

    for(int i=0;i<2;i++){
        record[i]=input.nextLine();
    }
    contact.add(record);
    x1++;
}

while(x1)你总是从索引0开始迭代。所以你总是用最后一个字符串替换所有字符串。为什么要否决投票?我可以知道原因吗?这个代码已经被提问者接受了。
    while (x1 <= 3) {
        String[] record = new String[2];
        for (int i = 0; i < 2; i++) {
            record[i] = input.nextLine();
        }
        contact.add(record);
        x1++;
    }