프레젠테이션의 1 개에 "이 방법은 LAZY입니다!"라고 표시됩니다. 누군가가 나를 그들이이 무슨 뜻인지 이해하는 데 도움이대부분의 Iterators 및 Iterables 메서드는 LAZY입니다! 이것은 무엇을 의미합니까?
Iterable transform(Iterable, Function)*
Iterable filter(Iterable, Predicate)*
T find(Iterable<T>, Predicate)
Iterable concat(Iterable<Iterable>)
Iterable cycle(Iterable)
T getOnlyElement(Iterable<T>)
Iterable<T> reverse(List<T>)
, 나는 Persons
의 컬렉션을했습니다 나는 필터가 그 성 DOE 경우에만 사람을 반환 적용 말할 수 있습니다.
이렇게하면 "doeOnly.next()의 첫 번째 호출에서만 필터링이 발생합니까?"
List<Person> persons= ....
Iterable doeOnly= Iterables.filter(persons,DOE_AS_LAST_NAME_PREDICATE);
필터링은 'doeOnly.hasNext()'가 아니라'next()'가 아닌 첫 번째 호출에서 발생해야합니다. 왜냐하면 하나의 요소 만 남았지 만 조건절에 실패하면 'hasNext()'는 false를 반환해야하지만 필터는 일치하지 않는 요소를 가져올 때까지이를 알지 못합니다. – finnw