java - 确定最大整数 "null saved"

标签 java max

我需要对我编写的函数进行最终审查和一些提示。

  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[] 并将 0Integer.MIN_VALUE 保留为我的“未初始化”值。

关于java - 确定最大整数 "null saved",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13877901/

相关文章:

java - 选择一个图像,然后从所选图像中选择一个子图像

java - PointerByReference 不返回值

java - Calendar.DAY_OF_WEEK_IN_MONTH 相当于 java8 中的 ZonedDateTime

java如何找到二维数组中每一行的最大值

javascript - 查找最小和最大日期

java - 如何在不构建项目的情况下更新 gradle 依赖项

java - 掷骰子和计数数组初学者

iphone - 设置 UITextField 最大长度

javascript - 在稀疏 javascript 数组中查找最大值

mysql - 如何选择最大值为 2 列的行