返回一个或两个数组的方法

时间:2017-02-09 15:31:32

标签: java arrays arraylist methods

它没有重复我已经阅读了所有和没有套件在我的情况下所以请阅读并回答它。我有两个数组。一个是车辆,另一个是pin.This是代码的一部分,它是只有方法。

第一个问题:

  

如果我已经在同一主体上声明了数组   我在方法上传递它们的方法是对的吗?换句话说就是参数   是好还是需要(int vehicle [],int pin [])还是别的什么?

第二个问题 + =

  

我不知道它做了什么,但我认为在阵列引脚中它需要   作为一个例子,引脚[1]的成本为10.数字10取   getcostosvehicle();(我们把它从userinput中取出来)所以当数组填充时   它没有任何插槽,然后成本将完成。结果将   让我们说结束的插槽是20针[20]让我们说它有350   return语句只会给我们最后的费用吗?这样会更好   写返回引脚[i];所以这样它将返回所有引脚   每个插槽的全部费用,我是对的吗?

第三个问题

  

在这段代码上,我想写一些答案,你可以回来   两个数组?我的意思是返回引脚[i],车辆[i];不仅返回pin [i];。如果   是的,你能否回答并且不需要填写车辆   array.Just告诉我这是否会发生。

public static int  getallcosts(vehicle[],pin[]) {

        int costos = 0;

        for(int i =0; i < pin.length; i++) {
            costos += pin[i].getcostosvehicle();
        }

        return costos;
    }

2 个答案:

答案 0 :(得分:1)

  

如果我已经在这个方法的同一个main上声明了数组,那么我在方法上传递它们的方式是正确的吗?换句话说,参数是好的还是需要的(int vehicle [],int pin [])或者其他什么别的?

我不确定我是否理解正确但当然 getallcosts(vehicle[],pin[])无法编译,即您需要定义类型数组(或vehiclepin实际上是类型的名称)。

  

写返回引脚[i]会更好;所以这样它会以每个插槽的全部成本返回所有引脚,我是对的吗?

不,您只能拥有一个返回值。如果要返回多个值,则需要将它们包装在一个对象(数组,列表,pojo等)中。

  

在这段代码上,我想写一下作为答案你可以返回两个数组吗?

请参阅上面的部分:如果要返回多个数组,则需要将它们添加到某个对象并返回该对象。由于您没有提供数组的类型,我将使用另一个示例:

class Result {
  String[] strings;
  int[] numbers;
}

Result someMethod() {
  Result r = new Result();
  r.strings = new String[]{"a","b","c"};
  r.numbers= new int[]{1,2,3};
  return r;
}

答案 1 :(得分:0)

第一个问题:

如果你正在调用一个方法(所以你没有定义它),yuo可以像你一样编写参数,没有类型。 否则,您需要指定类型。在这种情况下,您要定义一个新方法,因此需要指定参数类型。

第二个问题:

'+ ='就像写

costos = costos + pin[i].getcostosvehicle();

因此,您将添加'costos'的当前值''getcostosvehicle()'检索到的车辆'costos';

第三个问题:

据我所知,你不能在return语句中返回任何类型的两个对象。 因此,您需要重新组织代码以先在数组上执行操作并将其返回,然后再返回到另一个数组并返回它。 例如,你可以做一个方法,让generica数组作为参数在里面做一些逻辑,然后返回它。您将为第一个数组调用此方法,然后为第二个数组调用此方法。

示例:

public int[] method(int[] array){
  /*do something
  */
  return array;
}

然后你会打电话:

firstArray = method(firstArray);
secondArray = method(secondArray);

如果你想要更多,或者我必须改变一些评论,请。