【问题标题】:Return inside a method one or two arrays在方法内部返回一个或两个数组
【发布时间】:2017-02-09 15:31:31
【问题描述】:

它不是重复的,我已经阅读了所有内容,没有任何套件,所以请阅读并回答。我有两个数组。一个是 Vehicle,另一个是 pin。这是代码的一部分,它是 只有方法。

第一个问题:

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

第二个问题 +=

我不知道它的作用,但我认为在阵列引脚中它需要 作为一个 ecample,pin[1] 成本为 10。数字 10 由 getcostosvehicle();(我们从用户输入中输入)所以当数组填满时 并且它没有任何插槽然后成本将完成。结果将 可以说在 pin[20] 中结束的插槽是 20 可以说它有 350。 return 语句只会给我们最后的成本?最好是 写返回销[i];所以这样它就会返回所有的引脚 每个插槽的全部费用,对吗?

第三个问题

关于这段代码,我想写我作为答案,你能回来吗 两个数组?我的意思是返回 pin[i],vehicle[i];不仅返回 pin[i];.If 是的,你能回答一下吗?不需要填写车辆 数组。只是为了告诉我这是否会发生。

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

        int costos = 0;

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

        return costos;
    }

【问题讨论】:

  • 你可能想展示一些可编译的(从而减少混乱)代码。
  • 为什么混淆代码?在第一行中,它只是名称 getallcosts 和两个数组的参数。第二行是一个变量,在我填充数组后,最后我返回它。也许到做cmets?我认为它也不需要。如果你愿意,我可以做到
  • 有一点让人困惑:vehicle 是数组的名称还是元素的类型?

标签: java arrays arraylist methods


【解决方案1】:

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

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

最好写return pin[i];所以这样它会返回所有的 pin 以及每个插槽的全部成本,对吗?

不,你只能有一个返回值。如果要返回多个值,则需要将它们包装在一个对象中(数组、列表、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;
}

【讨论】:

  • r 它是什么?基本上 Result r = new Result();你调用的方法?你创建一个方法?
  • 使用 'Result()' 你正在调用 'Result' 类的默认构造函数。
  • 关于方法 Result someMethod(){ } 我认为会是 Result someMethod(string[] Strings,numbers[] int){}。我错了吗?
  • 我基本上是在调用一个构造函数,它是一种特殊的方法(在任何体面的 Java 教程中阅读它)。
  • ooo 我以为这是一种方法!抱歉 :D 是的,我知道,但我没听懂,我想办法
【解决方案2】:

第一个问题:

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

第二个问题:

'+=' 就像写

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

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

第三个问题:

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

例子:

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

然后你会调用:

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

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

【讨论】:

    猜你喜欢
    • 2012-01-17
    • 1970-01-01
    • 2018-09-18
    • 2011-09-14
    • 1970-01-01
    • 2016-12-27
    • 2014-11-10
    • 2014-12-22
    • 2018-10-01
    相关资源
    最近更新 更多