2016-06-30 10 views
-1

私はIterable<T>を持っています。この反復可能要素には、m要素が含まれます。 n要素を含むIterable<T>を作成したいと考えています。ユーザーが入力するNの場合はn = min(m, N)です。これらの要素は、指定された反復可能要素の最初の要素である必要があります。イテラブルの最初のn要素を取得する

返されたIterableは、元のIterableでバックアップされ、要素のコピーではありません。

おそらくGuavaにこれを行う魔法の機能はありますか?

+0

FluentIterable.limit() –

答えて

5

私が正しく理解している場合は、Iterables#limit(Iterable, int)を使用することができます。

は、与えられた反復可能なの最初のlimitSize要素を持つ反復可能なを作成します。オリジナルのiterableにその要素が多数含まれていない場合、返されるiterableは元のiterableと同じ動作をします。返されるiterableのイテレータは、元のイテレータが行う場合はremove()をサポートします。

例:クール

Iterable<Integer> limitedToTwoElements = Iterables.limit(someIterable, 2); 
// wrapped iterable will have size 2, obviously 
// ...unless original iterable is smaller, then it'll have size equal to original 
+0

、感謝します。それをスキップしている必要があります。名前はあまり有益ではありません:) –

関連する問題