@Test public void concatIterablesWhenAbsent() { Iterator<Object> it = concat(Arrays.asList(Arrays.asList(), Arrays.asList())); assertThat(it).isEmpty(); }
public static <T> Iterator<T> concat(final Iterator<T> first, final Iterator<T> second) { checkNotNull(first, "first"); checkNotNull(second, "second"); return new PeekingIterator<T>() { Iterator<? extends T> current = first; protected T computeNext() { if (!current.hasNext() && current != second) { current = second; } while (current.hasNext()) { T element = current.next(); if (element != null) { return element; } } return endOfData(); } }; }
Util { public static <T> Iterator<T> concat(final Iterator<T> first, final Iterator<T> second) { checkNotNull(first, "first"); checkNotNull(second, "second"); return new PeekingIterator<T>() { Iterator<? extends T> current = first; protected T computeNext() { if (!current.hasNext() && current != second) { current = second; } while (current.hasNext()) { T element = current.next(); if (element != null) { return element; } } return endOfData(); } }; } }
Util { public static <T> Iterator<T> concat(final Iterator<T> first, final Iterator<T> second) { checkNotNull(first, "first"); checkNotNull(second, "second"); return new PeekingIterator<T>() { Iterator<? extends T> current = first; protected T computeNext() { if (!current.hasNext() && current != second) { current = second; } while (current.hasNext()) { T element = current.next(); if (element != null) { return element; } } return endOfData(); } }; } private  Util(); }
Util { public static <T> Iterator<T> concat(final Iterator<T> first, final Iterator<T> second) { checkNotNull(first, "first"); checkNotNull(second, "second"); return new PeekingIterator<T>() { Iterator<? extends T> current = first; protected T computeNext() { if (!current.hasNext() && current != second) { current = second; } while (current.hasNext()) { T element = current.next(); if (element != null) { return element; } } return endOfData(); } }; } private  Util(); static boolean equal(Object a, Object b); static String slurp(Reader reader); static String join(char delim, Object... parts); static List<String> split(char delim, String toSplit); static T nextOrNull(Iterator<T> it); static Iterator<T> singletonIterator(final T nullableValue); static PeekingIterator<T> peekingIterator(final Iterator<T> iterator); static Iterator<T> concat(final Iterator<T> first, final Iterator<T> second); static Iterator<T> concat(final Iterable<? extends Iterable<? extends T>> i); static Iterator<T> filter(final Iterator<T> unfiltered,
                                       final Filter<? super T> filter); static Filter<T> and(final Filter<T> first, final Filter<? super T> second); static String flatten(Map<String, Object> input); static Map<String, Object> toMap(String type, String rdata); static Map<String, Object> toMap(String type, List<String> parts); }
Util { public static <T> Iterator<T> concat(final Iterator<T> first, final Iterator<T> second) { checkNotNull(first, "first"); checkNotNull(second, "second"); return new PeekingIterator<T>() { Iterator<? extends T> current = first; protected T computeNext() { if (!current.hasNext() && current != second) { current = second; } while (current.hasNext()) { T element = current.next(); if (element != null) { return element; } } return endOfData(); } }; } private  Util(); static boolean equal(Object a, Object b); static String slurp(Reader reader); static String join(char delim, Object... parts); static List<String> split(char delim, String toSplit); static T nextOrNull(Iterator<T> it); static Iterator<T> singletonIterator(final T nullableValue); static PeekingIterator<T> peekingIterator(final Iterator<T> iterator); static Iterator<T> concat(final Iterator<T> first, final Iterator<T> second); static Iterator<T> concat(final Iterable<? extends Iterable<? extends T>> i); static Iterator<T> filter(final Iterator<T> unfiltered,
                                       final Filter<? super T> filter); static Filter<T> and(final Filter<T> first, final Filter<? super T> second); static String flatten(Map<String, Object> input); static Map<String, Object> toMap(String type, String rdata); static Map<String, Object> toMap(String type, List<String> parts);  }