我需要对我编写的函数进行最终审查和一些提示。
public static Integer max(Integer... pNumber) {
Integer lResult = null;
for (Integer lNumber : pNumber) {
if (lResult == null || (null != lNumber && lNumber > lResult)) {
lResult = lNumber;
}
}
return lResult;
}
我不太确定我的代码是否优雅。 空参数以及空结果都是可能的。 然而......我有一种感觉,我解决了代码中的一些问题,太复杂了。 该函数是公司使用的实用程序类的一部分。 不允许使用第三方库。
这里是相应的测试:
@Test
public void testMaxWithInteger() {
assertEquals(new Integer(9), NumberUtils.max(4, 2, -4, null, 9, 5));
}
提前致谢
最佳答案
恕我直言,我不会使用 null
对象,因为 Integer[]
使用的内存是使用 int[]
的 6 倍
public static Integer max(Integer... ints) {
long ret = Long.MIN_VALUE;
for (Integer i: ints)
if (null != i && i > ret)
ret = i;
return ret >= Integer.MIN_VALUE? (int) ret : null;
}
我会使用 int[]
而不是 Integer[]
并将 0
或 Integer.MIN_VALUE
保留为我的“未初始化”值。
关于java - 确定最大整数 "null saved",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13877901/