2016-06-30 6 views
-1

나는 Iterable<T>을 가지고 있습니다. 이 반복 가능 요소에는 m 요소가 포함됩니다. n 요소를 포함하는 Iterable<T>을 만들고 싶습니다. 사용자가 입력하는 일부 N의 경우 n = min(m, N)입니다. 이러한 요소는 주어진 반복 가능 요소의 첫 번째 n 요소 여야합니다.반복 가능 문자의 첫 번째 n 요소 가져 오기

반품 된 Iterable은 원래 Iterable으로 백업되며 요소 사본이 백업되지 않는 것이 이상적입니다.

구아바에는 아마도 이런 일을하는 마법의 기능이 있습니까? 내가 제대로 이해하면

+0

FluentIterable.limit() –

답변

5

, 당신은 Iterables#limit(Iterable, int)를 사용할 수 있습니다

지정된 반복자의 첫 번째 limitSize 요소가있는 반복 가능한 만듭니다. 원래 iterable에 많은 요소가 포함되어 있지 않으면 리턴 된 iterable은 원래 iterable과 동일한 작동을 갖습니다. 반환 된 iterable의 iterator는 원래 iterator가 수행하는 경우 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

쿨, 감사합니다. 그것을 건너 뛰었어야합니다. 이름이 그렇게 유익하지 않습니다 :) –

관련 문제