Here the words that are longer than 4 are displayed in the console.
How can I change the condition to display the word with the maximum length?
// main
import java.util.Arrays; public class Main { public static void main(String... args) { Dataset.of(Arrays.asList("шла", "саша", "по", "шоссе")) .union(Arrays.asList("и", "сосала", "сушку")) .filter(s -> s.length() > 4) .map(s -> s + ", length=" + s.length()) .forEach(System.out::println); }}
// dataset
public class Dataset<T> { private final Generator<T> generator; private Dataset(Generator<T> generator) { this.generator = generator; } public void forEach(Consumer<T> consumer) { generator.generate(value -> consumer.accept(value)); } public Dataset<T> union(Collection<T> collection) { return new Dataset<>(generatorContext -> { generator.generate(generatorContext); collection.forEach(item -> generatorContext.emit(item)); }); } public Dataset<T> filter(Predicate<T> predicate) { return new Dataset<>(generatorContext -> generator.generate(value -> { if (predicate.test(value)) { generatorContext.emit(value); } })); } public <R> Dataset<R> map(Function<T, R> function) { return new Dataset<>(generatorContext -> generator.generate( value -> generatorContext.emit(function.apply(value)) )); } public static <T> Dataset<T> of(Collection<T> collection) { return new Dataset<>(generatorContext -> collection.forEach(item -> generatorContext.emit(item)) ); } public static <T> Dataset<T> dataset(Generator<T> generator) { return new Dataset<>(generator); }
}
Dataset
class? Where is he from? - Sergey GornostaevGenerator
and why all this is all, but oh well, I suppose that this does not affect either the question or the answer. - Sergey Gornostaev