如何将5个数字摘要作为数组返回

时间:2015-07-01 01:38:21

标签: java arrays

我正在开发一个程序,该程序为mean,med,mode,q1,q3,max和min建立了方法。 最后一个方法应该返回一个5数字摘要(min,q1,med,q3,max)作为数组。由于我已经为所有这些方法建立了方法并且正常工作,因此我需要一种简单的方法将所有这些值合并到一个新方法中并作为数组返回。 我试过这个

public static int calcNumsum(int[] a) { 
  int min; 
  int max; 
  int q1; 
  int q3; 
  int med;
  int[] vals = new int[5];
  vals[1] = min; 
  vals [2] = q1; 
  vals [3] = med; 
  vals [4] = q3; 
  vals [5] = max; 
  return vals;
它给了我一个编译错误 int []无法转换为int。 关于如何解决这个或更好的方法来返回数组的任何建议?

3 个答案:

答案 0 :(得分:1)

int[][][][][]是一个5维数组,而不是具有5个元素的一维数组。

int[] vals = new int[5];  // this has 5 elements
// ... assign values like vals[0] = whoever etc
return vals;

或者,简写

return new int[]{ val1, val2, val3, val4, val5 };

编辑:来自评论

public static int calcNumsum(int[] a) {
    int min; int max; int q1; int q3; int med; int[] vals = new int[5];
    vals[1] = min; vals [2] = q1; vals [3] = med; vals [4] = q3; vals [5] = max;
    return vals;
}
  • 声明的方法类型为int,但您要返回int[]
  • 您提交的所有int变量都未初始化,因此您返回的数组将始终为{0,0,0,0,0},因为它现在是
  • vals[5]超出数组范围,数组索引从0开始
  • 取参数a但根本不使用它?

根据您的初始帖子判断,您想要获取所有5个值并返回它们的数组吗?如果是这种情况,您可以使用cheapo变量数量的参数技巧。

public static int[] toArray(int... vals) {
    return vals;
}

并将其称为

int[] theVals = toArray(min, q1, med, q3, max);
// theVals[0] = min, theVals[1] = q1, etc

答案 1 :(得分:0)

您正在声明您的阵列错误。

int[] numSum = new int[]{min,q1,med,q3,max};

尝试阅读此文章以了解更好地声明数组:How do I declare and initialize an array in Java?

答案 2 :(得分:0)

  1. 输入是什么?

  2. 您需要返回5个数组还是只返回5个值?

  3. 假设这些答案是显而易见的,并且您需要5维数组而不是5个值,并且嵌套列表列表不是一个选项,这在java中是不可能的。 Java将n维数组存储为一维数组,您可以使用它。因此,有效地,您可以创建一维数组以及列大小,并根据需要操作值。

    根据更改的问题,您将返回int []以获取定义为返回int的方法。

    更改

    public static int calcNumsum(int[] a) 
    

    public static int[] calcNumsum(int[] a)