2017-08-19 5 views
-1

イテレータを使用してAbc型のallRecordsリストを走査しています。要素 を追跡するために、私は位置変数を保持します。Javaでラムダを使用してArraylistの要素の位置を返します。

この位置変数を使用して、自分のプログラムでさらにロジックを適用します。次のように

コードスニペットは、次のとおりです。

Abc abc; 
Iterator<Abc> iterator = allRecords.iterator(); 
while (iterator.hasNext()) { 
    abc = iterator.next(); 
    position++; 
    //validate the abc object with some conditions and break the loop if matches 
    //I will have that position where the condition matched 
} 

私の質問は、私は、このタスクを達成するためにJavaの最新ストリームAPIやラムダ式の一部を使用することができています。

ご協力いただければ幸いです。

+0

ストリームのポイントはインデックスのようなものを避けるでしょう、ここで何を達成しようとしていますか? – Rogue

答えて

1

あなたはしかし、内部反復を可能にするためにAPIの設計をストリーミングして、インデックスとの懸念あなたはこのAPIを使用してはならない。この

IntStream.range(0, allRecords.length) 
    .filter(i -> allRecords[i].length() <= i) 
    .mapToObj(i -> allRecords[i]) 

のようなもので、これを達成することができます。

External and internal繰り返しの詳細については、この投稿を参照してください。

関連する問題