我有一個陣列:
LocalDateTime[] onTimes
我想找到一種找到最小 LocalDateTime 的有效方法(無需迭代)。
有沒有快速的方法來做到這一點?
uj5u.com熱心網友回復:
可以想象,你可以使用遞回;但我不建議這樣做以提高性能。我能想到的最好的方法是使用像
LocalDateTime min = Arrays.stream(onTimes).min(Comparator.naturalOrder())
.orElseThrow();
注意:這仍然在內部迭代所有元素以找到最小值。
為了完整起見;如我所說,在沒有迭代的情況下執行此操作可能會遞回完成。
public static LocalDateTime getMinimum(LocalDateTime[] onTimes) {
return getMinimum(onTimes, 0);
}
private static LocalDateTime getMinimum(LocalDateTime[] onTimes, int i) {
if (i 1 < onTimes.length) {
return min(onTimes[i], getMinimum(onTimes, i 1));
} else {
return onTimes[i];
}
}
private static LocalDateTime min(LocalDateTime a, LocalDateTime b) {
if (a.compareTo(b) <= 0) {
return a;
}
return b;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/537345.html
標籤:爪哇数组最低限度
