com.xyzwps.lib.dollar.Helper Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xyzwps-dollar Show documentation
Show all versions of xyzwps-dollar Show documentation
A lodash-like, lazy and powerful java collection utils
The newest version!
package com.xyzwps.lib.dollar;
import java.util.Comparator;
import java.util.Iterator;
import java.util.NoSuchElementException;
import java.util.function.Function;
class Helper {
static final class Counter {
private int count = 0;
Counter(int init) {
this.count = init;
}
int getAndIncr() {
return count++;
}
int get() {
return count;
}
}
static class Holder {
T value;
Holder(T value) {
this.value = value;
}
}
/**
* Create an ascending order comparator.
*
* @param toKey for getting element key
* @param element type
* @param element key type
* @return ascending comparator
*/
static > Comparator ascComparator(Function toKey) {
return Comparator.comparing(toKey);
}
/**
* Create a descending order comparator.
*
* @param toKey for getting element key
* @param element type
* @param element key type
* @return descending comparator
*/
static > Comparator descComparator(Function toKey) {
return (o1, o2) -> toKey.apply(o2).compareTo(toKey.apply(o1));
}
/**
* An empty iterator. You can get nothing here.
*
* @param element type. Haha.
*/
static class EmptyIterator implements Iterator {
@Override
public boolean hasNext() {
return false;
}
@Override
public T next() {
throw new NoSuchElementException();
}
private EmptyIterator() {
}
/**
* Create an empty iterator.
*
* @param element type
* @return an empty iterator
*/
public static Iterator create() {
return new EmptyIterator<>();
}
}
}