我试图通过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;
}
}
}
}
我知道会产生很多错误,但有没有办法可以将多个整数返回到数组(有点像上面的程序)?谢谢!
答案 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;
}
}
原始代码的更改:
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());
}
}
我建议你制作能够制作你想要的东西的课程,而不是把所有东西放在主课堂上,你有主要的方法:)