MCPcopy Create free account
hub / github.com/antlr/codebuff / skip

Method skip

output/java_guava/1.4.16/Iterables.java:887–936  ·  view source on GitHub ↗

Returns a view of iterable that skips its first numberToSkip elements. If iterable contains fewer than numberToSkip elements, the returned iterable skips all of its elements. Modifications to the underlying Iterable before a call to iterator() are

(
    final Iterable<T> iterable, final int numberToSkip)

Source from the content-addressed store, hash-verified

885
886
887 public static <T> Iterable<T> skip(
888 final Iterable<T> iterable, final int numberToSkip) {
889 checkNotNull(iterable);
890 checkArgument(numberToSkip >= 0, "number to skip cannot be negative");
891 if (iterable instanceof List) {
892 final List<T> list = (List<T>) iterable;
893 return new FluentIterable<T>() {
894 @Override
895 public Iterator<T> iterator() {
896 // TODO(kevinb): Support a concurrently modified collection?
897 int toSkip = Math.min(list.size(), numberToSkip);
898 return list.subList(toSkip, list.size()).iterator();
899 }
900 };
901 }
902 return new FluentIterable<T>() {
903 @Override
904 public Iterator<T> iterator() {
905 final Iterator<T> iterator = iterable.iterator();
906 Iterators.advance(iterator, numberToSkip);
907
908 /*
909 * We can't just return the iterator because an immediate call to its
910 * remove() method would remove one of the skipped elements instead of
911 * throwing an IllegalStateException.
912 */
913 return new Iterator<T>() {
914 boolean atStart = true;
915
916 @Override
917 public boolean hasNext() {
918 return iterator.hasNext();
919 }
920
921 @Override
922 public T next() {
923 T result = iterator.next();
924 atStart = false; // not called if next() fails
925 return result;
926 }
927
928 @Override
929 public void remove() {
930 checkRemove(!atStart);
931 iterator.remove();
932 }
933 };
934 }
935 };
936 }
937
938 /**
939 * Returns a view of {@code iterable} containing its first {@code limitSize}

Callers 4

skipMethod · 0.95
skipFullyMethod · 0.45
skipBytesMethod · 0.45
countBySkippingMethod · 0.45

Calls 2

checkNotNullMethod · 0.45
checkArgumentMethod · 0.45

Tested by

no test coverage detected