2016-10-22 20 views
0

私はpositionを持っていますが、どちらの質問が表示されていますか?私はarraylistにpositionと等しいintを追加したいと思います。次に、そのarraylistがそのintを持っているかどうかを確認して、そのintが再び追加されないようにしたいのです。次のコードでは、positionのintを複数回追加します。 0がそれであるかどうarraylistがまだ存在しない場合にのみintを追加する

if(correctQuestions.size() == 0){ 
     correctQuestions.add(position); 
    }else if(correctQuestions.size() > 0){ 
     if(!Arrays.asList(correctQuestions).contains(position)){ 
      correctQuestions.add(position); 
     } 
    } 

position = 0;場合、このコードを実行するたびに関わらず、常に私のArrayListにpositionを追加します。たとえば、このコードを3回実行すると、arraylistは[0,0,0]を出力して0を1回だけ追加することができます。

答えて

0

あなたは次のように記述する必要があります。

if(correctQuestions.size() == 0){ 
    correctQuestions.add(position); 
}else if(correctQuestions.size() > 0){ 
    if(!correctQuestions.contains(position)){ 
     correctQuestions.add(position); 
    } 
} 
0

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

if(correctQuestions.indexOf(position) < 0) {//this will return -1 if object not found in the arraylist 
    correctQuestions.add(position); 
} 
0

あなたのArrayListの最大のインデックスが変数サイズとして、それを前提としています。 は、だから、条件ロジックを記述することができます。

if(size!=0 && position < size){ 
    correctQuestions.add(position); 
} 
0

方法arrayList.size()リスト内の項目の数を返します - ので、インデックスがサイズ()以上であれば、そうでありません存在する。

if(correctQuestions.size() > position){ 

     correctQuestions.add(position); 

} 

if you want to check if position already present in arraylist if `correctQuestions.get(index);` in try block shows that if no key present it will throw in catch 

try { 
    correctQuestions.get(index); 
} catch (IndexOutOfBoundsException e) { 
    correctQuestions.add(index, new Object()); 
}