2016-06-15 6 views
0

2D ArrayListを作成して値を追加しようとしています。何らかの理由で私はNoSuchElementExceptionを得続けます。 https://www.hackerrank.com/challenges/java-arraylist2d arraylist NoSuchElementException

import java.io.*; 
import java.util.*; 
import java.text.*; 
import java.math.*; 
import java.util.regex.*; 

public class Solution { 

    public static void main(String[] args) { 
     /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */ 
       Scanner input = new Scanner(System.in); 
       int TestCases = input.nextInt(); 
       ArrayList<ArrayList<Integer>> listOfLists = new ArrayList<ArrayList<Integer>>(); 

       List<ArrayList<Integer>> Sdarraylist = new ArrayList<ArrayList<Integer>>(); 

       //ArrayList<ArrayList<String>> 2darraylist = new ArrayList<>(); 
       //ArrayList<String> 1darraylist=new ArrayList<>(); 

       for(int i=0;i<TestCases;i++){ 

        ArrayList<Integer> Fdarraylist=new ArrayList<Integer>(); 
        //size of Arraylist 
        int NumbersOnCurrentLine = input.nextInt(); 
        for(int j=0;i<NumbersOnCurrentLine;j++){ 
        //add numbers on the current line to the list 
        Fdarraylist.add(input.nextInt()); 
        } 
       Sdarraylist.add(Fdarraylist); 
       }     
// data.add(new ArrayList<String>()); 
//data.get(0).add("String"); 

    } 
} 

答えて

0

あなたが入力から読み込むしようとすると、例外が発生しますが、何も入力が利用できないこと:ここでは

は私が解決しようとしている問題です。 1つの回避策は、hasNextInt()メソッドを使用して、利用可能な読み取り可能な入力があることを確認することです。これは実際に2つだけがあるとき、現在の行の3つの数字があると言って、入力の結果である可能性があり

if (input.hasNextInt()) { 
    Fdarraylist.add(input.nextInt()); 
} 

EX)。

1 
3 1 4 <= would cause exception. 
+0

少し作っていただきありがとうございます。 –

+0

しかし、私の2ループは各行の最初の番号に従ってループするだけなので、論理的には意味がありません。 –

+0

私は現在のspace.Soのintを読んでいる必要がありますので、たとえば私の行が3 6 5 2ループが正しく動作するはずです –

関連する問題