【发布时间】:2020-03-18 19:52:09
【问题描述】:
此方法返回一个数组,其中包含参数数组中的正元素。 为此,计算数组中正元素的数量并将获得的值存储在变量中 整数类型的 nElements,声明大小为 nElements 的双精度数组输出,复制正元素 输入到数组输出中,并返回数组输出。如果数组中的所有元素都是非正数, 您的方法应该返回一个大小为 1 的数组,并且返回数组的唯一元素被分配 值 -1。
我的问题是,当我运行我的程序时,它在线程“main”java.lang.NegativeArraySizeException 中声明异常,我不知道如何取出它,只返回正元素。
Java 代码:
public static double [] partialPositiveArray(double [] in)
{
int nElements = 0;
for(int i = 0; i < in.length; i++)
{
if(in[i] > 0)
{
nElements = (int)in[i];
}
else if(in[i] <= 0)
{
nElements = -1;
}
}
double [] output = new double[nElements];
for(int i = 0; i < in.length; i++)
{
output[i] = nElements;
}
return output;
}
【问题讨论】:
-
这一行中的失败者:
nElements = -1;。将其更改为nElements -= 1;或nElements = nElements - 1;则不会出现错误,而只是对象的存储地址。但是您希望添加数组 in 中的所有正数,对吗? -
是的,我想要所有的正数
-
对于负数你不想做什么?
-
刚刚从新数组返回-1
-
例如,如果它有 3 个负数,您是否希望新数组中有 3 个条目,每个条目都为 -1?