2011-12-09 7 views
-4

모든 도움을 주셔서 감사합니다.하지만 이제 Patrick의 제안에 따라 질문의 성격이 변경되었습니다. 루프가 실행되고 있지만 각 배열에 입력을 저장하지 않는 것 같습니다. 배열의 다음 위치로 이동하지 않고 데이터가 배열 목록으로 대체됩니다. 제안 사항이 있습니까?arrayList에 데이터를 저장할 수 없습니까?

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)); 

    } 
} 
관련 문제