2016-06-16 10 views
-2

私はarraylistの配列を入力したいと思います。最初の入力はarraylistの配列の数で、次の行は各配列の入力を表します。どこが間違っているのか教えてください。そのためのコードの下に見つけてください:arraylistの配列のユーザー入力を与えるには?

public static void main(String[] args) {  
    Scanner input = new Scanner(System.in); 
    int a = input.nextInt(); 
    ArrayList[] al = new ArrayList[a]; 
    for(int i =0; i<a; i++){    
     while(input.hasNextLine()) 
      { 
       al[i].add(input.nextInt()); 
      } 
    } 
    System.out.print("result is"+al[0]);   
} 
+1

これは、ArrayListの使用方法ではありません。 – intboolstring

+0

コンパイルします。彼/彼女は生の種類を使っているだけです。 http://stackoverflow.com/questions/2770321/what-is-a-raw-type-and-why-shouldnt-we-use-it –

+0

あなたは 'ArrayList'の空の配列を作成しましたが、それに追加しようとする前に 'ArrayList'を初期化します。その問題を解決するためにwhileループを追加する前に、 'al [i] = new ArrayList()'を呼び出してください。しかし、intboolstringも正しいです - これは 'ArrayList'の良いユースケースではありません。 – Krease

答えて

1

はこれを試してみてください。

for(int i =0; i<a; i++){  
     ArrayList<int> temp = new ArrayList<int>(); 
     while(input.hasNextLine()) 
      { 
       temp.add(input.nextInt()); 
      } 
     al[i] = temp; 
    } 
+0

こんにちはAndrew、これは問題ありませんが、異なる行のすべての入力を受け取り、最初の配列に割り当てます。どのように私は次の配列でそれを持つことができます –

+0

'while input.hasNextLine(){ ArrayList temp = new ArrayList (); temp.add(input.nextInt()); al [i] = temp; } ' コメントの書式設定はあまり良くありませんが、うまくいけば助けになります! – Andrew

関連する問題