当前位置: 首页 > 知识库问答 >
问题:

如何在java中找到数组中最大数量的负整数?

翁翰
2023-03-14

如何在java中找到负整数的最大有效数?我有以下代码,可以很好地处理正整数。这是代码:

int max = 0; // not initialsing it also makes it 0
int[] n = {-1,-2,-3,-4};
for(int i = 0; i < n.lenght; i++)
   if(max < n[i]) 
      max = n[i];

现在,我可以通过将变量max减少到-5或低于-4来解决这个问题,但这是低效的,因为我们不知道最小值。

那么,如何实现呢?

共有2个答案

闻人修平
2023-03-14
  1. 您的方法的返回类型必须是int包装类Intger,因为您接受int数组中的任何值,因此向用户显示数组没有max的唯一方法,这只有在数组为空时才会发生,是返回null。
  2. 现在因为您确保数组可能为空的情况,唯一的另一种情况是数组至少有一个或多个元素,现在您可以像这样初始化开始变量max=n[0]因为如果您的数组只有一个元素,它必须是最大的。对于其他情况,您的循环将完成其余的工作。

所以有两个解决方案首先由您自己迭代

private static Integer max(int[] numbers) {
    if (numbers.length != 0) {
        int max = numbers[0];
        for (int i = 1; i < numbers.length; i++)
            if (max < numbers[i]){
                max = numbers[i];
            }
        return max;
    }
    return null;
}

或者只使用API方法(可以扩展)

private static Integer max(int[] numbers) {
    OptionalInt result = Arrays.stream(numbers).max();

    return result.isPresent() ? result.getAsInt() : null;
}
寿亦
2023-03-14

如果我正确理解了您的问题,您正在整数列表中寻找最高整数值。

您可以使用IntStreams来获取数据的最高价值。

IntStream stream = IntStream.of(-9, -18, 54, 8, 7, 14, 3);
OptionalInt obj = stream.max(); // or use stream.min() for the lowest integer

if (obj.isPresent()) {
    System.out.println(obj.getAsInt()); // 54
}
else {
    System.out.println("stream is empty");
}

正如@OneCricketeer所建议的,也可以将您现有的int[]与流一起使用:

int[] n = {-1, -2, -3, -4}; // your array of data

IntStream stream = Arrays.stream(n);
OptionalInt obj = stream.max();
if (obj.isPresent()) {
    System.out.println(obj.getAsInt()); // -1
} else {
    System.out.println("stream is empty");
}

在线尝试!

 类似资料:
  • 问题内容: 我需要返回最大的负值,如果没有负值,则需要返回零。这是我所拥有的: 问题答案: 您只需要考虑以下两个步骤即可解决此问题: 只考虑list []中的负值。 在负值范围内的循环中,如果(结果== 0)或(值>结果)更新当前结果。 码:

  • 我有一个数组,我需要三个数中最大的一个数和各自的索引值。我有一个这样的数组: 如何找到最大的数字及其索引值?

  • 我有一些用于Euler项目的代码。求最大素因子600851475143。这需要很长时间才能完成,至少需要30分钟。你们能看出来是因为我的代码太长了,还是我的代码错了。还有,有什么让运行时间更快的提示吗?

  • 问题内容: 假设我有一个对象数组。并且对象具有属性。除了逐一读取对象并逐一比较值之外,是否还有其他捷径可做?谢谢。 问题答案: 您可以简单地将用户数组映射到用户年龄数组和查找最大年龄数组:

  • 我正在制作一个数组,它从1-100生成随机数。然后,在最后,我将从列表中输出最大值和最小值。但是,我不知道如何找到/调用max和min,我尝试使用math方法函数(如math.min()),但我认为它对数组不起作用。这是我的代码(下划线是我想要调用最大值和最小值的地方,但我不知道如何调用)。 }

  • 本文向大家介绍如何在Java中调整数组大小?,包括了如何在Java中调整数组大小?的使用技巧和注意事项,需要的朋友参考一下 数组无法在Java中动态调整大小。  一种方法是使用java.util.ArrayList(或java.util.Vector)代替本机数组。 另一种方法是重新分配大小不同的数组,然后将旧数组的内容复制到新数组。 例: 输出: