如何在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来解决这个问题,但这是低效的,因为我们不知道最小值。
那么,如何实现呢?
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;
}
如果我正确理解了您的问题,您正在整数列表中寻找最高
整数值。
您可以使用IntStream
s来获取数据的最高价值。
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)代替本机数组。 另一种方法是重新分配大小不同的数组,然后将旧数组的内容复制到新数组。 例: 输出: