我想创建一个返回二维数组最小值的泛型方法。我将使用以下代码:
public static <T extends Comparable<T>> T Max(T[][]stuff) {
T min = stuff[0][0];
for (T[] row : stuff) {
for (T elt : row) {
if (elt.compareTo(min) > 0) {
max = elt;
}
}
}
return max;
}
但是代替max,我需要找min,我必须使用签名:
public static E Min<E>(E[,] matrix) where E : IComparable<E>
很抱歉,如果这听起来像是家庭作业,但我无法绕过它。非常感谢帮助。
答案 0 :(得分:0)
一个简单的解决方案是
public static <T extends Comparable<T>> T min(T[][]stuff) {
T min = stuff[0][0];
for (T[] row : stuff) {
for (T elt : row) {
if (elt.compareTo(min) < 0)
min = elt;
}
}
return min;
}
答案 1 :(得分:0)
功能方法:
Optional<T> min = Arrays.stream(stuff)
.flatMap(Arrays::stream)
.min(Comparable::compareTo);