apply new code formatter and save action
This commit is contained in:
@@ -15,144 +15,143 @@ import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class CollectionUtils {
|
||||
|
||||
public interface Compare<T> {
|
||||
|
||||
public boolean test(T valueA);
|
||||
public interface Compare<T> {
|
||||
|
||||
public static <T, V> Compare<T> compare(Function<? super T, ? extends V> keyExtractor, V value) {
|
||||
Objects.requireNonNull(keyExtractor);
|
||||
return t -> Objects.equals(keyExtractor.apply(t), value);
|
||||
}
|
||||
public boolean test(T valueA);
|
||||
|
||||
default Compare<T> thenCompare(Compare<? super T> other) {
|
||||
Objects.requireNonNull(other);
|
||||
return t -> {
|
||||
final boolean res = test(t);
|
||||
return res ? other.test(t) : false;
|
||||
};
|
||||
}
|
||||
|
||||
default <V> Compare<T> thenCompare(Function<T, ? extends V> keyExtractor, V value) {
|
||||
return thenCompare(compare(keyExtractor, value));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static <T> List<T> copySort(Collection<? extends T> collection, Comparator<T> comparator){
|
||||
final List<T> result = new ArrayList<T>(collection);
|
||||
Collections.sort(result, comparator);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static <T, R extends T> void mapInPlace(final List<T> list, final Function<T, R> mapper) {
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
final T value = list.get(i);
|
||||
final T newValue = mapper.apply(value);
|
||||
list.set(i, newValue);
|
||||
}
|
||||
}
|
||||
|
||||
public static <T, R> List<R> map(final Collection<T> list, final Function<T, R> mapper) {
|
||||
final List<R> result = new ArrayList<>(list.size());
|
||||
|
||||
for (final T t : list) {
|
||||
result.add(mapper.apply(t));
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static <T, R> List<R> map(final T[] input, final Function<T, R> mapper) {
|
||||
return Stream.of(input).map(mapper).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public static <O extends Collection<R>, T, R> O map(final Collection<T> input, final O result,
|
||||
final Function<T, R> mapper) {
|
||||
|
||||
for (final T t : input) {
|
||||
final R e = mapper.apply(t);
|
||||
result.add(e);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static <T, V> Map<T, V> createMapFromValues(final Iterable<V> iterable, final Function<V, T> keyMapper) {
|
||||
final Map<T, V> result = new HashMap<>();
|
||||
|
||||
for (final V value : iterable) {
|
||||
final T key = keyMapper.apply(value);
|
||||
|
||||
result.put(key, value);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static <KEY, VALUE> Map<KEY, VALUE> createMapFromKeys(final Iterable<KEY> iterable,
|
||||
final Function<KEY, VALUE> valueMapper) {
|
||||
final Map<KEY, VALUE> result = new HashMap<>();
|
||||
|
||||
for (final KEY key : iterable) {
|
||||
final VALUE value = valueMapper.apply(key);
|
||||
|
||||
result.put(key, value);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static <T> List<T> filter(final Collection<T> collection, final Predicate<T> predicate) {
|
||||
return collection.stream().filter(predicate).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public static <T> int indexOf(final List<T> list, final Predicate<T> predicate) {
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
if (predicate.test(list.get(i))) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static <T> boolean contains(Collection<T> collection, final Compare<T> compare) {
|
||||
for (T t : collection) {
|
||||
boolean found = compare.test(t);
|
||||
if (found ) {
|
||||
return true;
|
||||
public static <T, V> Compare<T> compare(Function<? super T, ? extends V> keyExtractor, V value) {
|
||||
Objects.requireNonNull(keyExtractor);
|
||||
return t -> Objects.equals(keyExtractor.apply(t), value);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static <T> long count(Collection<T> collection, final Compare<T> compare) {
|
||||
long count = 0;
|
||||
for (T t : collection) {
|
||||
boolean found = compare.test(t);
|
||||
if (found ) {
|
||||
count++;
|
||||
|
||||
default Compare<T> thenCompare(Compare<? super T> other) {
|
||||
Objects.requireNonNull(other);
|
||||
return t -> {
|
||||
final boolean res = test(t);
|
||||
return res ? other.test(t) : false;
|
||||
};
|
||||
}
|
||||
|
||||
default <V> Compare<T> thenCompare(Function<T, ? extends V> keyExtractor, V value) {
|
||||
return thenCompare(compare(keyExtractor, value));
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
public static <V, T extends Collection<V>> T removeAll(final T collection, final T remove,
|
||||
final Supplier<T> generator) {
|
||||
public static <T> List<T> copySort(Collection<? extends T> collection, Comparator<T> comparator) {
|
||||
final List<T> result = new ArrayList<T>(collection);
|
||||
Collections.sort(result, comparator);
|
||||
return result;
|
||||
}
|
||||
|
||||
final T result = generator.get();
|
||||
result.addAll(collection);
|
||||
result.removeAll(remove);
|
||||
return result;
|
||||
}
|
||||
public static <T, R extends T> void mapInPlace(final List<T> list, final Function<T, R> mapper) {
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
final T value = list.get(i);
|
||||
final T newValue = mapper.apply(value);
|
||||
list.set(i, newValue);
|
||||
}
|
||||
}
|
||||
|
||||
public static <V, T extends Collection<V>> T retainAll(final T collection, final T retain,
|
||||
final Supplier<T> generator) {
|
||||
public static <T, R> List<R> map(final Collection<T> list, final Function<T, R> mapper) {
|
||||
final List<R> result = new ArrayList<>(list.size());
|
||||
|
||||
final T result = generator.get();
|
||||
result.addAll(collection);
|
||||
result.retainAll(retain);
|
||||
return result;
|
||||
}
|
||||
for (final T t : list) {
|
||||
result.add(mapper.apply(t));
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static <T, R> List<R> map(final T[] input, final Function<T, R> mapper) {
|
||||
return Stream.of(input).map(mapper).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public static <O extends Collection<R>, T, R> O map(final Collection<T> input, final O result,
|
||||
final Function<T, R> mapper) {
|
||||
|
||||
for (final T t : input) {
|
||||
final R e = mapper.apply(t);
|
||||
result.add(e);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static <T, V> Map<T, V> createMapFromValues(final Iterable<V> iterable, final Function<V, T> keyMapper) {
|
||||
final Map<T, V> result = new HashMap<>();
|
||||
|
||||
for (final V value : iterable) {
|
||||
final T key = keyMapper.apply(value);
|
||||
|
||||
result.put(key, value);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static <KEY, VALUE> Map<KEY, VALUE> createMapFromKeys(final Iterable<KEY> iterable,
|
||||
final Function<KEY, VALUE> valueMapper) {
|
||||
final Map<KEY, VALUE> result = new HashMap<>();
|
||||
|
||||
for (final KEY key : iterable) {
|
||||
final VALUE value = valueMapper.apply(key);
|
||||
|
||||
result.put(key, value);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static <T> List<T> filter(final Collection<T> collection, final Predicate<T> predicate) {
|
||||
return collection.stream().filter(predicate).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public static <T> int indexOf(final List<T> list, final Predicate<T> predicate) {
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
if (predicate.test(list.get(i))) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static <T> boolean contains(Collection<T> collection, final Compare<T> compare) {
|
||||
for (T t : collection) {
|
||||
boolean found = compare.test(t);
|
||||
if (found) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static <T> long count(Collection<T> collection, final Compare<T> compare) {
|
||||
long count = 0;
|
||||
for (T t : collection) {
|
||||
boolean found = compare.test(t);
|
||||
if (found) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
public static <V, T extends Collection<V>> T removeAll(final T collection, final T remove,
|
||||
final Supplier<T> generator) {
|
||||
|
||||
final T result = generator.get();
|
||||
result.addAll(collection);
|
||||
result.removeAll(remove);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static <V, T extends Collection<V>> T retainAll(final T collection, final T retain,
|
||||
final Supplier<T> generator) {
|
||||
|
||||
final T result = generator.get();
|
||||
result.addAll(collection);
|
||||
result.retainAll(retain);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user