add LongList

It is an exact copy of IntList.
This commit is contained in:
2018-01-24 19:15:19 +01:00
parent bd6c595856
commit fa0c7136a4
4 changed files with 2582 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,58 @@
package org.lucares.collections;
import java.util.function.Predicate;
/**
* A {@link Predicate} for primitive longs.
*/
@FunctionalInterface
public interface LongPredicate {
/**
* Evaluates the predicate.
*
* @param value
* the value
* @param index
* the index in the list
* @return {@code true} iff the input argument matches the predicate
*/
boolean test(long value, int index);
/**
* Returns a predicate that represents the logical AND of {@code this} and
* another predicate. The and operation is short-circuiting.
*
* @param other
* the other predicate
* @return the result of combining both predicates with a logical AND operation
* @throws NullPointerException
* if {@code other} is null
*/
default LongPredicate and(final LongPredicate other) {
return (value, index) -> test(value, index) && other.test(value, index);
}
/**
* Returns a predicate that represents the logical OR of {@code this} and
* another predicate. The and operation is short-circuiting.
*
* @param other
* the other predicate
* @return the result of combining both predicates with a logical OR operation
* @throws NullPointerException
* if {@code other} is null
*/
default LongPredicate or(final LongPredicate other) {
return (value, index) -> test(value, index) || other.test(value, index);
}
/**
* Returns a predicate that negates the result of this predicate.
*
* @return the negation of {@code this}
*/
default LongPredicate negate() {
return (value, index) -> !test(value, index);
}
}

View File

@@ -0,0 +1,18 @@
package org.lucares.collections;
import java.util.function.Function;
/**
* Represents an operation that maps a long to a long. This is a specialization
* of {@link Function} for a primitive long.
*/
public interface UnaryLongOperator {
/**
* Applies the operation to the integer
*
* @param value
* the input value
* @return the result of the operation
*/
long apply(long value);
}