71 lines
1.8 KiB
Java
71 lines
1.8 KiB
Java
package main.java.com.djrapitops.plan.utilities;
|
|
|
|
import java.io.Serializable;
|
|
import java.util.Collection;
|
|
import java.util.OptionalDouble;
|
|
import java.util.stream.Stream;
|
|
|
|
/**
|
|
*
|
|
* @author Rsl1122
|
|
*/
|
|
public class MathUtils {
|
|
|
|
public static double averageInt(Stream<Integer> values) {
|
|
OptionalDouble average = values.mapToInt(i -> i).average();
|
|
if (average.isPresent()) {
|
|
return average.getAsDouble();
|
|
} else {
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
public static long averageLong(Collection<Long> values) {
|
|
return averageLong(values.stream());
|
|
}
|
|
|
|
public static long averageLong(Stream<Long> values) {
|
|
OptionalDouble average = values.mapToLong(i -> i).average();
|
|
if (average.isPresent()) {
|
|
return (long) average.getAsDouble();
|
|
} else {
|
|
return 0L;
|
|
}
|
|
}
|
|
|
|
public static double averageDouble(Stream<Double> values) {
|
|
OptionalDouble average = values.mapToDouble(i -> i).average();
|
|
if (average.isPresent()) {
|
|
return average.getAsDouble();
|
|
} else {
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
public static double average(int total, int size) {
|
|
return 1.0 * total / size;
|
|
}
|
|
|
|
public static long countTrueBoolean(Stream<Boolean> values) {
|
|
return values.filter(i -> i).count();
|
|
}
|
|
|
|
public static int sumInt(Stream<Serializable> values) {
|
|
return values
|
|
.mapToInt(value -> (Integer) value)
|
|
.sum();
|
|
}
|
|
|
|
public static long sumLong(Stream<Serializable> values) {
|
|
return values
|
|
.mapToLong(value -> (Long) value)
|
|
.sum();
|
|
}
|
|
|
|
public static double sumDouble(Stream<Serializable> values) {
|
|
return values
|
|
.mapToDouble(value -> (Double) value)
|
|
.sum();
|
|
}
|
|
}
|