Java - 将多个整数返回到数组

时间:2013-03-22 20:15:13

标签: java arrays integer return

我试图通过void将多个整数返回到数组。像这样:

public class abc {
    public static void main(String[] args) {

        int[] evenNumbers = { findEvenNumbers(0, 10); };

    }

    public static void findEvenNumbers(int min, int max) {

        for(int i = min; i <= max; i++) {

            if((i % 2) == 0) {

                return i;

            }

        }

    }

 }

我知道会产生很多错误,但有没有办法可以将多个整数返回到数组(有点像上面的程序)?谢谢!

4 个答案:

答案 0 :(得分:4)

我认为这会解决问题:

import java.util.Arrays;

public class Abc {
    public static void main(String[] args) {

        int[] evenNumbers = findEvenNumbers(0, 10);
        // should really do something with the result:
        System.out.println(Arrays.toString(evenNumbers));
    }

    public static int[] findEvenNumbers(int min, int max) {
        int[] result = new int[max - min + 1];
        int n = 0;
        for(int i = min; i <= max; i++) {
            if((i % 2) == 0) {
                result[n++] = i;
            }
        }
        if (n < result.length) {
             result = Arrays.copyOf(result, n);
        }
       return result;
    }

}

原始代码的更改:

  • 将类名更改为以大写字母开头(Java编码约定;不影响行为)。
  • 更改findEvenNumbers以返回int[]而不是void
  • 更改了evenNumbers的初始化表达式,以便findEvenNumbers帐户返回数组而不是int值。
  • 更改了正文以在数组results中存储偶数并返回results(调整长度后)。

答案 1 :(得分:0)

变化:

public static void findEvenNumbers(int min, int max)

public static int[] findEvenNumbers(int min, int max)

这意味着您打算从函数中返回一些内容(void表示不会返回任何内容)。在这种情况下,将返回一个int数组。

从这样的方法创建并返回一个数组:

int[] arr = new int[numberOfElements];
//put stuff in array like this:
arr[0] = 1;
arr[1] = 2;

return arr;

答案 2 :(得分:0)

Noete:您无法从具有void返回类型

的函数返回任何内容
   public static Integer[] findEvenNumbers(int min, int max) 
    {
       List<Integer> lists = new ArrayList<Integer>();

      for(int i = min; i <= max; i++) {

        if((i % 2) == 0) {

            lists.add(i);

        }         

    }
 return (Integer[])(lists.toArray());
}

答案 3 :(得分:0)

你可以试试这个:

    private static ArrayList <Integer> evenNumbers = new ArrayList<Integer>();

    public static void findEvenNumbers(int min, int max) {

        for(int i = min; i <= max; i++) {

            if((i % 2) == 0) {

                evenNumbers.add(i);
            }

        }
   }

   public static void main (String [] args){

       findEvenNumbers(0, 10);

       Iterator iterator = evenNumbers.iterator();

       while(iterator.hasNext()){

          System.out.println(iterator.next());
       }

   }

我建议你制作能够制作你想要的东西的课程,而不是把所有东西放在主课堂上,你有主要的方法:)