Improved Session Length Median calculation on even number of sessions

This commit is contained in:
Rsl1122 2018-08-21 10:24:38 +03:00
parent 3afaad9731
commit bae8708e87

View File

@ -7,6 +7,7 @@ import com.djrapitops.plan.data.store.containers.DataContainer;
import com.djrapitops.plan.data.store.keys.CommonKeys; import com.djrapitops.plan.data.store.keys.CommonKeys;
import com.djrapitops.plan.data.store.keys.SessionKeys; import com.djrapitops.plan.data.store.keys.SessionKeys;
import com.djrapitops.plan.data.time.WorldTimes; import com.djrapitops.plan.data.time.WorldTimes;
import com.djrapitops.plan.utilities.analysis.Median;
import java.util.*; import java.util.*;
import java.util.function.Predicate; import java.util.function.Predicate;
@ -142,13 +143,8 @@ public class SessionsMutator {
} }
public long toMedianSessionLength() { public long toMedianSessionLength() {
List<Long> sessionLengths = sessions.stream().map(Session::getLength) List<Long> sessionLengths = sessions.stream().map(Session::getLength).collect(Collectors.toList());
.sorted() return (long) Median.forLong(sessionLengths).calculate();
.collect(Collectors.toList());
if (sessionLengths.isEmpty()) {
return 0;
}
return sessionLengths.get(sessionLengths.size() / 2);
} }
public int toAverageUniqueJoinsPerDay() { public int toAverageUniqueJoinsPerDay() {
@ -200,5 +196,4 @@ public class SessionsMutator {
return toPlayerDeathList().size(); return toPlayerDeathList().size();
} }
} }