私はこのようないくつかのforeach
ループを持っていると仮定すると検出?最後のforeachループの反復
(それは重複質問だ場合は申し訳ありませんが、私はここに、このようないくつかの質問が見つかりませんでした)
私はこのようないくつかのforeach
ループを持っていると仮定すると検出?最後のforeachループの反復
(それは重複質問だ場合は申し訳ありませんが、私はここに、このようないくつかの質問が見つかりませんでした)
How does the Java 'for each' loop work?
を見てみましょうあなたが明示的にイテレータまたはint型のカウンタを使用するようにループを変更する必要があり、そこではありません。
イテレータは本当に私を助けることができました!ありがとう。 – mhery
現在の要素がまた、最後の要素であるかどうかを確認する方法には、ビルドはありません。それ以外に返品の順序を保証していないHashSet
を使用しています。たとえそれを確認したいと思っても。インデックスがi
の場合、最後の要素は常に異なる要素になります。
Set
は、その中の項目の順序を保証しません。 Set
を1回ループし、「最後のアイテム」として「abc」を取得し、次に「hij」がSet
の「最後のアイテム」であることがわかります。
あなたが注文を心配しておらず、その現時点でSet
を観察しているときに任意の「最後のアイテム」が何であるか知りたいのであれば、これを行う方法は組み込まれていません。あなたはカウンターを利用する必要があります。
その他の回答は完全に適切です。特定の質問に対してこの解決策を追加するだけです。
Set<String> names = new HashSet<>();
//some code
int i = 0;
for (String name: names) {
if(i++ == names.size() - 1){
// Last iteration
}
//some code
}
ありがとうございます。各ループが最後の反復をチェックするための良い解決策。これはイテレータでforループを使用するのと非常によく似ていますが、それでも、素晴らしいソリューション! – NiallMitch14
いいえ、Setインターフェイスにこのようなメソッドはありません。その抽象化は順序を意味するものではなく、すべての要素が一意であるコレクションであることを意味します。 – duffymo
カウンターなしでは、あなたは単にjavaでそれを行うことはできません。 – abbath
pls tell、現在の要素が最後であることを知っていれば、何をしたいですか? 'HashSet'のそれぞれがその順序を保持しないことを覚えておいてください。 – Kent