import java.lang.String;
import java.lang.System;
import java.util.Arrays;
/**
* Created by Kelvin on 14.10.2015.
*/
public class Assignment5 {
public static void main(String[] args) {
int[] values = {7,3,5,0,9,4,1,7,2,9,1,39};
System.out.println(min(values));
System.out.println(min2(values));
System.out.println(min3(values));
System.out.println(minPos(values));
}
// cleaner, but one iteration unnecessary
public static int min(int[] list) {
int min = list[0];
for (int x: list) {
min = x < min ? x : min;
}
return min;
}
// slightly optimized, conventional
public static int min2(int[] list) {
int min = list[0];
for (int i = 1; i < list.length; i++) {
min = list[i] < min ? list[i] : min;
}
return min;
}
// still not like haskell, but close
public static int min3(int[] list) {
return Arrays.stream(list).min().getAsInt();
}
// conventional
public static int minPos(int[] list) {
int pos = 0,
min = list[0];
for (int i = 1; i < list.length; i++) {
if (list[i] <= min){
min = list[i];
pos = i;
}
}
return pos;
}
}