当前位置: 首页 > 知识库问答 >
问题:

为什么数组在使用其他方法改变数组时会出现不同的打印方式?[副本]

祁嘉木
2023-03-14

你应该得到的结果是0,但我不明白为什么?数组通过其他方法时会发生更改。

public class Tester {
  public static int function1 (int [] arr) {
    arr= function2(arr);
    return arr[0];
  }
  public static int[] function2 (int [] arr) {
    arr = new int[4];
    return arr;
  }
    public static void main(String[] args) {
      int arr[] = {1,2,3,4};
      System.out.print(Tester.function1(arr));
    }
}

我希望从打印的答案中得到4。

共有1个答案

罗伟志
2023-03-14

您正在Function2中创建一个全新的数组。这就是为什么默认情况下它在每个索引处存储0的原因。返回时,新数组仅返回。对于每个索引,它只打印0。为什么要在函数2中创建新数组?如果必须打印4,那么只需传递现有数组并打印arr[3]

代码如下:-

public class Tester {
  public static int function1 (int [] arr) {
    arr= function2(arr);
    //return arr[0];
    return arr[3];
  }
  public static int[] function2 (int [] arr) {
    //arr = new int[4];
    return arr;
  }
    public static void main(String[] args) {
      int arr[] = {1,2,3,4};
      System.out.print(Tester.function1(arr));
    }
}
 类似资料:
  • 我正在尝试在第三个数组中打印第一个数组的第一个索引和第二个数组的最后一个索引。也尝试了不同的方法,但仍然失败。 我还尝试了这段代码:出来的是:第三个数组将是:[0,0,0,0,0,0] 有什么解决办法吗?我真的很感激你能提供的任何帮助。 结果:

  • 但是,正确的数据条目在被调用时会打印出来。我试着在网上寻找我应该做什么的答案,但我找不到任何实际可行的东西。我刚刚开始学习Java,所以可能有一个非常简单的答案,我只是忽略了。如果有人有什么想法,我将不胜感激。

  • 问题内容: 众所周知,(大多数)浮点数没有精确存储(使用IEEE-754格式时)。因此,不应这样做: ......因为它会导致,除非一些特定的任意精度的类型/类使用(BigDecimal的中的Java/Ruby的,bcmath时在PHP中,[数学::BigInt有 / 数学::BigFloat在Perl,仅举几例)来代替。 但是,我想知道为什么当尝试打印该表达式的结果时,脚本语言(Perl和PHP

  • 问题内容: 我编写了以下JavaScript: 此代码声明一个变量并将其设置为数组值。然后,它声明第二个变量并将其设置为。它对进行操作,然后向和发出警报。不知何故,当我对执行操作时,似乎对执行了相同的操作。 然后,代码对数字值执行相同的操作:声明一个变量并将其设置为数字值。然后,它声明第二个变量并将其设置为。它对进行操作,然后向和发出警报。在这里,我得到预期的行为:对不同的价值观和。 数组与Jav

  • 前言 数组的其他方法如下: 方法 描述 备注 indexOf(value) 从前往后索引,获取 value 在数组中的第一个下标 lastIndexOf(value) 从后往前索引,获取 value 在数组中的最后一个下标 find(function()) 找出第一个满足「指定条件返回true」的元素。 findIndex(function()) 找出第一个满足「指定条件返回true」的元素的in