java - 数组和方法?

标签 java

我正在为 Java 编程类(class)执行一项任务,但我不确定以下内容是如何工作的?下面的方法从数组和整数中获取值。应该将整数添加到数组中,然后在其他方法中在方法之外使用,依此类推,但是当该方法没有返回数组的新内容时,这怎么可能呢?方法中有一个空白?我错过了什么吗?希望得到一些帮助?有关于指针的东西吗?

public static void makeTransaction(int[] trans, int amount);

最佳答案

Java 中的数组是对象。如果您修改方法内的 trans 数组,则更改将反射(reflect)在其外部1。例如:

public static void modify(int[] arr)
{
    arr[0] = 10;
}

public static void main(...) 
{
    int x = {1, 2, 3};
    System.out.println(x[0]); // prints 1

    modify(x);
    System.out.println(x[0]); // now it prints 10

}

请注意,Java 中无法动态调整 native 数组的大小。您将不得不使用类似 ArrayList 的内容如果你需要这样做。或者,您可以将返回类型更改为 int[] 并返回一个新数组,并将新元素“附加”到旧数组中:

public static int[] makeTransaction(int[] trans, int amount)
{
    int[] new_trans = Arrays.copyOf(trans, trans.length + 1);
    new_trans[trans.length] = amount;

    return new_trans;
}
<小时/>

1 还值得注意的是,作为对象,数组引用是按值传递的,因此以下代码在方法之外没有任何效果:

public void no_change(int[] arr)
{
    arr = new int[arr.length];
}

关于java - 数组和方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7839454/

相关文章:

java - Play Framework : "Action not found" error for GET route after AJAX call to PUT/POST

java - 如何将一个项目的spring-config.xml导入另一个项目的spring-config.xml?

java - 为什么我不能只比较两个对象的 hashCode 来确定它们是否相等?

java - 从父类(super class)的任何子类继承 (Java)

java - 如何使用 Selenium 将文本发送到 div 元素中的文本区域

java - 交换整数堆栈中的对?

java - Jetty TLS 1.0 和客户端 TLS 1.2

java - 如何用逗号分隔仅后跟字母数字字符的字符串

java - 椭圆曲线中的点乘

Java 通用问题