java - 如何创建一个新数组并将另一个数组中的所有正元素复制到新数组中并返回它?

标签 java arrays element

该方法返回一个数组,其中包含参数数组中的正元素。 为此,请计算数组中正元素的数量并将获得的值存储在变量中 nElements 类型为整数,声明大小为 nElements 的 double 组输出,复制正数元素 的 in 到数组输出中,并返回数组输出。如果数组中的所有元素均为非正数, 你的方法应该返回一个大小为 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;

  }

最佳答案

使用此代码,您将添加所有正数。本例中的总和为 60.7,对于所有负数,它将在负数组中写入 -1。在本例中两次。

代码:

public class NegativeAndPositiveNumbers {
    public static void main(String[] args) {
        double[] arr = {25.0, -7.0, 10.7, 25.0, -64.0};
        System.out.println(partialPositiveArray(arr));

        int negative[] = negativeArray(arr);
        for (int i = 0; i < negative.length; i++){
            System.out.print(negative[i] + " ");
        }
    }

    public static double partialPositiveArray(double[] in) {
        double nElements = 0;

        for (int i = 0; i < in.length; i++) {
            if (in[i] > 0) {
                nElements += in[i];
            }
        }
        return nElements;
    }

    public static int[] negativeArray(double[] in) {
        int[] negativeWithZero = new int[in.length];
        int index = 0;

        for (int i = 0; i < in.length; i++) {
            if (in[i] <= 0) {
                negativeWithZero[index] = -1;
                index++;
            }
        }
        int[] negative = new int[index];

        for (int j = 0; j < negative.length; j++){
            negative[j] = negativeWithZero[j];
        }

        return negative;
    }
}

我认为它可以更容易地解决,但无论如何它都有效。我希望一切都清楚

关于java - 如何创建一个新数组并将另一个数组中的所有正元素复制到新数组中并返回它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60746638/

相关文章:

java - 使用java中的三种方法和for循环求平均值

java - Swing + LWJGL 不渲染任何内容。黑屏

python - 通过指定行和列从另一个数组创建 NumPy 数组

c++ - 从非原始类型的 vector 中删除重复元素

javascript - 为什么从 const 结果中返回 **element** 作为错误?

Python-更改列表列表中的元素

java - 循环链表逻辑

java - 非常简单的素数测试——我想我不理解 for 循环

javascript - 如何仅使用 Javascript 一次显示一个数组元素?

javascript - 将对象上的 for 循环转换为 .map