@Override default <U> List<T> sortBy(Comparator<? super U> comparator, Function<? super T, ? extends U> mapper) { return Collections.sortBy(this, comparator, mapper, collector()); }
@Override default List<T> sorted(Comparator<? super T> comparator) { Objects.requireNonNull(comparator, "comparator is null"); return isEmpty() ? this : toJavaStream().sorted(comparator).collect(collector()); }
@Override default List<T> sorted() { return isEmpty() ? this : toJavaStream().sorted().collect(collector()); }
@Override default <U> List<T> sortBy(Comparator<? super U> comparator, Function<? super T, ? extends U> mapper) { return Collections.sortBy(this, comparator, mapper, collector()); }
@Override default List<T> sorted(Comparator<? super T> comparator) { Objects.requireNonNull(comparator, "comparator is null"); return isEmpty() ? this : toJavaStream().sorted(comparator).collect(collector()); }
public VavrDeckOfCards() { this.cards = Card.streamCards().sorted().collect(List.collector()); this.cardsBySuit = this.cards.groupBy(Card::getSuit); }
@Override default List<T> sorted() { return isEmpty() ? this : toJavaStream().sorted().collect(collector()); }
@Override public final List<String> classNames() { try { if(Files.notExists(path)) { return List.empty(); } final List<String> classes = Files.find(path, Integer.MAX_VALUE, (p, bf) -> p.toString().endsWith(".class")) .map(path::relativize) .map(p -> List.ofAll(StreamSupport.stream(p.spliterator(), false))) .map(pl -> pl.map(Object::toString).collect(Collectors.joining("."))) .map(s -> s.replace(".class", "")) .filter(s -> !"module-info".equals(s)) .collect(List.collector()); return classes; } catch(Exception ex) { throw new RuntimeException(ex); } } }