2

我想返回奇数个数组,但 Eclipse 似乎不接受我的返回array[i];码。我认为它需要返回整个数组,因为我将数组设置为我的方法的参数。正如我之前所说,我需要传递一个数组并获取该数组的特定元素作为回报。即使我将该数组设为静态,我如何返回单个元素?

编辑:好吧,这里是:

public class newClass{
public static void main(String[] args) 
{       
    int [] newArray= new int [4];
    int [] array = {4,5,6,7};

    newArray[0] = array[0]+array[1]+array[2]+array[3];
    newArray[1] = array[0]*array[1]*array[2]*array[3];
    newArray[2] = findOut(array);

}

public static int findOut (int [] array3)
{
    int e1=0;
    int e2=0;
    for (int i=0; i<array3.length; i++)
    {
        if (array3[i]%2==0)
        {
            e1+=array3[i];
            array3[i]=e1
            return array3[i];
        }

        else
        {
            e2+=array3[i];
            array3[i]=e2;
            return array3[i];

        }

    }

}


}

我知道这里可能有很多错误,但我正在努力解决这个问题,我不仅返回奇数,还将它们加在一起。

4

4 回答 4

12

您的代码应如下所示:

public int getElement(int[] arrayOfInts, int index) {
    return arrayOfInts[index];
}

这里的要点是方法返回类型,它应该与数组元素类型匹配,如果你正在使用main()- 这个方法也必须是静态的。

于 2013-10-15T08:47:48.700 回答
3

我想返回数组的奇数

如果我没看错,你想要这样的东西吗?

List<Integer> getOddNumbers(int[] integers) {
  List<Integer> oddNumbers = new ArrayList<Integer>();
  for (int i : integers)
    if (i % 2 != 0)
      oddNumbers.add(i);
  return oddNumbers;
}
于 2013-10-15T08:53:47.530 回答
1

确保您的方法的返回类型与您想要返回的相同。例如:`

  public int get(int[] r)
  {
     return r[0];
  }

`

注意:返回类型是 int,而不是 int[],所以它可以返回 int。

一般来说,原型可以

public Type get(Type[] array, int index)
{
    return array[index];
}
于 2013-10-15T08:48:28.280 回答
0

(已编辑。)它无法编译的原因有两个:您在此语句的末尾缺少一个分号:

array3[i]=e1

如果数组长度为 0,findOut 方法也不会返回任何值return 0;。在方法末尾添加 a 将使其编译。我不知道这是否会让它做你想做的事,因为我不知道你想让它做什么。

于 2013-10-15T09:15:43.683 回答