如何将原始数组的正值返回到新数组中

时间:2013-03-23 19:33:09

标签: java arrays

我应该声明一个15整数数组并返回包含原始数组正整数的第二个数组。我在从方法返回第二个数组时遇到了麻烦。

    import java.util.Scanner;
    public class array4
    {
      public static void main(String [] args)
      {
        int [] num = new int[15]; int [] positives = new int [15];
        getInput(num);
        positives = getPositives(num);
        printResults(num, positives);
      }
      public static void getInput(int [] num){
        int x;
        Scanner kbd = new Scanner(System.in);
        System.out.println("Enter 15 integers");
        for(x = 0; x < 15; x++)
    num[x] = kbd.nextInt();

   }
  public static int getPositives(int [] num){
    int position = 0;  
    int [] positive = new int [15];
    for(int i =0; i < num.length; i++){  

      if(num[i] >=0) {
        positive[position] = num[i];  
        position++;  }}
    return positive;
  }


  public static void printResults(int [] num, int [] positives){
    System.out.println("You entered"); int x;
    for(x = 0; x < num.length; x++)
    System.out.println(num[x]);
    System.out.println("Your positive integers are ");
    for(x = 0; x < positives.length; x++)
    System.out.println(positives[x]);}}

4 个答案:

答案 0 :(得分:1)

public static int[] getPositive()。返回类型是一个整数数组,但您将其声明为int

答案 1 :(得分:1)

getPositive中,您将返回int而不是int[]

我认为你的方法存在缺陷。

如果您创建ArrayList并将正数放入其中,然后将该列表转换为数组,则阵列中不会有任何空位。

答案 2 :(得分:1)

您需要声明getPositive以返回数组:

public static int[] getPositive(int [] num){

此外,您无需在positive方法中初始化main()。那只是分配一个将被丢弃的数组。

答案 3 :(得分:0)

您的方法必须返回整数数组而不是单个整数值。这是修改过的一段代码:

 public static int[] getPositive(int [] num){
int position = 0;  
int [] positive = new int [15];
for(int i =0; i < num.length; i++){  

  if(num[i] >=0) {
    positive[position] = num[i];  
    position++;  }}
return positive; // Wont give compilation error now

}