- Notifications
You must be signed in to change notification settings - Fork 19.9k
/
Copy pathAbsoluteMin.java
26 lines (20 loc) · 794 Bytes
/
AbsoluteMin.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
packagecom.thealgorithms.maths;
importjava.util.Arrays;
publicfinalclassAbsoluteMin {
privateAbsoluteMin() {
}
/**
* Compares the numbers given as arguments to get the absolute min value.
*
* @param numbers The numbers to compare
* @return The absolute min value
*/
publicstaticintgetMinValue(int... numbers) {
if (numbers.length == 0) {
thrownewIllegalArgumentException("Numbers array cannot be empty");
}
varabsMinWrapper = newObject() { intvalue = numbers[0]; };
Arrays.stream(numbers).skip(1).filter(number -> Math.abs(number) <= Math.abs(absMinWrapper.value)).forEach(number -> absMinWrapper.value = Math.min(absMinWrapper.value, number));
returnabsMinWrapper.value;
}
}