All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.artclod.common.collect.FCollection Maven / Gradle / Ivy

package com.artclod.common.collect;

import java.util.Collection;
import java.util.Map;
import java.util.Optional;
import java.util.function.BiFunction;
import java.util.function.BinaryOperator;
import java.util.function.Function;
import java.util.function.Predicate;

public interface FCollection extends Collection {

	public boolean nonEmpty();

	public FCollection filter(Predicate filter);
	public FCollection filterNot(Predicate filter);

	public  FCollection map(Function f);
	public  FCollection flatMap(Function> mapper);

	public String mkString(String sep);
	public String mkString(String start, String sep, String end);

	public Optional reduce(BinaryOperator accumulator);
	public Optional reduceLeft(BinaryOperator accumulator);
	public Optional reduceRight(BinaryOperator accumulator);
	
	public E reduce(E identity, BinaryOperator accumulator);
	public E reduceLeft(E identity, BinaryOperator accumulator);
	public E reduceRight(E identity, BinaryOperator accumulator);
	
	public  O fold(O initial, BiFunction f);
	public  O foldLeft(O initial, BiFunction f);
	public  O foldRight(O initial, BiFunction f);

	public  Map> groupBy(Function f);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy