2011-12-09 73 views
-4

感谢所有帮助人员,但现在问题的性质已经根据Patrick的建议改变了。循环正在运行,但它似乎并未将输入存储到各个阵列。数据不断被替换到阵列列表中,而不是进入阵列列表中的下一个位置任何建议?无法将数据存储在arrayLists中?

import java.util.ArrayList; 
import java.util.Scanner; 
public class Arrray { 
    public static void main(String [] args){ 

     ArrayList<String> names; 
     ArrayList<String> addr; 

     do { 
      names = new ArrayList<String>(); 
      addr = new ArrayList<String>(); 
      Scanner userInput = new Scanner(System.in); 
      System.out.println("Name and Adreess are: " + names.size() + "**" 
        + addr.size()); 
      System.out.println("please Enter Your Name :"); 
      names.add(userInput.next()); 
      System.out.println("please enter your Address :"); 
      addr.add(userInput.next()); 

      System.out.println("Do you want to add another entry? :(y/n)"); 
      String ans =userInput.next(); // get the value from the user using scanner class 
      if(ans.equals("n") || ans.equals("N")) 
       break; 

      } while (true); 
     int n = names.size(); 
     int a = addr.size(); 
     for(int i =0; i<n && i<a; i++) 
      System.out.println("Name and address are as below: "+ names.get(i)+"**"+ addr.get(i)); 

    } 
} 
+1

谁是帕特里克?在编辑之前我们看不到任何东西,所以我们不确定发生了什么。你是否创建了一个新问题而不是编辑前一个问题?您应该添加一个标签,指定您正在使用的语言。 –

+2

你能否使用标点符号来识别句子的开始和结束? –

回答

1

您每次通过循环时都创建一个新的ArrayList。这意味着最后一个数组只包含最后一个元素。 改为在循环之前创建它们。

2

您的代码每次运行时都会重新初始化ArrayList。你需要把它从循环中取出。

import java.util.ArrayList; 
import java.util.Scanner; 
public class Arrray { 
    public static void main(String [] args){ 

     ArrayList<String> names = new ArrayList<String>(); 
     ArrayList<String> addr = new ArrayList<String>(); 

     do { 
      //names = new ArrayList<String>(); take this out 
      //addr = new ArrayList<String>(); // take this out 
      Scanner userInput = new Scanner(System.in); 
      System.out.println("Name and Adreess are: " + names.size() + "**" 
        + addr.size()); 
      System.out.println("please Enter Your Name :"); 
      names.add(userInput.next()); 
      System.out.println("please enter your Address :"); 
      addr.add(userInput.next()); 

      System.out.println("Do you want to add another entry? :(y/n)"); 
      String ans =userInput.next(); // get the value from the user using scanner class 
      if(ans.equalsIgnoreCase("n")) 
       break; 

      } while (true); 
     int n = names.size(); 
     int a = addr.size(); 
     for(int i =0; i<n && i<a; i++) 
      System.out.println("Name and address are as below: "+ names.get(i)+"**"+ addr.get(i)); 

    } 
}