@Override public boolean hasNext() { while (next == null && that.hasNext()) { final T elem = that.next(); final U key = keyExtractor.apply(elem); if (!known.contains(key)) { known = known.add(key); next = elem; } } return next != null; }
@SuppressWarnings("unchecked") enum ContainerType { SET( (Traversable<?> set, Object elem) -> ((Set<Object>) set).add(elem), (Traversable<?> set, Object elem) -> ((Set<Object>) set).remove(elem), java.util.HashSet::new (Traversable<?> set, Object elem) -> ((Set<Object>) set).add(elem), (Traversable<?> set, Object elem) -> ((Set<Object>) set).remove(elem), java.util.TreeSet::new
@Override public boolean hasNext() { while (next == null && that.hasNext()) { final T elem = that.next(); final U key = keyExtractor.apply(elem); if (!known.contains(key)) { known = known.add(key); next = elem; } } return next != null; }
@SuppressWarnings("unchecked") enum ContainerType { SET( (Traversable<?> set, Object elem) -> ((Set<Object>) set).add(elem), (Traversable<?> set, Object elem) -> ((Set<Object>) set).remove(elem), java.util.HashSet::new (Traversable<?> set, Object elem) -> ((Set<Object>) set).add(elem), (Traversable<?> set, Object elem) -> ((Set<Object>) set).remove(elem), java.util.TreeSet::new
public Tuple2<Set<Card>, ? extends List<Card>> deal(List<Card> stack, int count) { Set<Card> hand = HashSet.empty(); for (int i = 0; i < count; i++) { Tuple2<Card, ? extends List<Card>> cardTuple2 = stack.pop2(); stack = cardTuple2._2(); hand = hand.add(cardTuple2._1()); } return Tuple.of(hand, stack); }
public Tuple2<Set<Card>, List<Card>> deal(List<Card> stack, int count) { Set<Card> hand = HashSet.empty(); for (int i = 0; i < count; i++) { Tuple2<Card, List<Card>> cardTuple2 = stack.pop2(); stack = cardTuple2._2(); hand = hand.add(cardTuple2._1()); } return Tuple.of(hand, stack); }
public Tuple2<Set<Card>, ? extends List<Card>> deal(List<Card> stack, int count) { Set<Card> hand = HashSet.empty(); for (int i = 0; i < count; i++) { Tuple2<Card, ? extends List<Card>> cardTuple2 = stack.pop2(); stack = cardTuple2._2(); hand = hand.add(cardTuple2._1()); } return Tuple.of(hand, stack); }