一个数据比较的小实验。不知道还能写几个小技巧。mark一下。
i
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
public class CmpMain {
/**
* Default constructor
*/
public CmpMain() {
}
public static void main(String[] args) {
List<Integer> allRows = Arrays.asList(1, 3, 5, 7, 9, 11);
int refNum = 6;
Optional<Integer> minDifRowOpt = allRows.stream()
.min((r1, r2) -> Long.compare(getAbsDif(r1, refNum), getAbsDif(r2, refNum)));
Optional<Integer> minDifRowOpt2 = allRows.stream()
.min(Comparator.comparing(r->getAbsDif(r, refNum)));
System.out.println(minDifRowOpt.get());
System.out.println(minDifRowOpt2.get());
}
public static int getAbsDif(int r, int subNum) {
return Math.abs(r - subNum);
}
}