返回数组的所有负面元素

时间:2016-11-15 20:45:28

标签: java arrays

好的,所以我需要找到所有数组的负数并返回它们。我找到了负数,但我如何将它们全部归还? P.S是的我是初学者。

public static void main(String[] args) {
        int [] array = {5,-1,6,3,-20,10,20,-5,2};
        System.out.println(findNumber(array));
    }




public static int findNumber(int[] sum) {
    int num = 0;
    for (int i = 0; i < sum.length ; i++) {
        if(sum[i] < num) {
            num = sum[i];
        }
    }
    return num;
}

5 个答案:

答案 0 :(得分:6)

基于Java 8的解决方案。您可以使用流来过滤掉大于或等于零的数字

    public static int[] findNumber(int[] sum)
    {
        return Arrays.stream(sum).filter(i -> i < 0).toArray();
    }

答案 1 :(得分:3)

有多种方法可以做到这一点,如果您只想轻松输出所有负数,可以这样做:

public static void main(String[] args) {
    int [] array = {5,-1,6,3,-20,10,20,-5,2};
    ArrayList<Integer> negativeNumbers = findNumber(sum);
    for(Integer negNum : negativeNumbers) {
        System.out.println(negNum);
    }
}

public static ArrayList<Integer> findNumber(int[] sum) {
    ArrayList<Integer> negativeNumbers = new ArrayList<>();
    for (int i = 0; i < sum.length ; i++) {
        if(sum[i] < 0) {
          negativeNumber.add(sum[i]);
        }
    }
    return negativeNumbers;
}

答案 2 :(得分:1)

正如你告诉你的初学者,我只是在使用数组代码。

每当遇到负数时,只需将其添加到数组并增加其索引号,并在检查完所有数字后,返回数组并打印出来。

public static void main(String[] args)
{
    int [] array = {5,-1,6,3,-20,10,20,-5,2};
    int[] neg = findNumber(array);
    for(int i = 0 ; i<neg.length; i++)
    {
        System.out.println(neg[i]);
    }
}

public static int[] findNumber(int[] a)
{
    int j=0;
    int[] n = new int[a.length];
    for(int i = 0; i<a.length ; i++)
    {
        if(a[i] <0)
        {
            n[j] = a[i];
            j++;
        }
    }

    int[] neg = new int[j];
    for( int k = 0 ; k < j ; k++)
    {
        neg[k] = n[k];
    }

    return neg;
}

我希望它有所帮助。

答案 3 :(得分:0)

你的代码正在返回元素的总和,但我知道你想要每个负数。 所以,我以为你想要这样的东西:

public static void main(String[] args) {
  int [] array = {5,-1,6,3,-20,10,20,-5,2};
  Integer [] result = findNumbers( array );
  for( int i : result )
  {
    System.out.println( i );
  }
}
public static Integer[] findNumbers(int[] v) {
  List<Integer> list = new ArrayList<>();
  for (int i = 0; i < v.length ; i++) {
      if(v[i] < 0) {
          list.add(v[i]);
      }
  }
  return list.toArray( new Integer[0] );
}
是吗?

最好的问候。

答案 4 :(得分:0)

您可以修改您的方法以迭代数字数组,并将您遇到的每个负数添加到List。

public static List<Integers> findNegativeNumbers(int[] num) {
    List<Integers> negativeNumbers = new ArrayList<>();
    for (int i = 0; i < num.length; i++) {
        if(num[i] < 0) {
            negativeNumbers.add(num[i]);
        }
    }
    return negativeNumbers;
}

然后,您可以从此方法本身打印出负数列表,或者返回包含return的列表以在main中打印。