Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用void方法更新主方法中的ArrayList_Java_Arrays_Arraylist - Fatal编程技术网

Java 使用void方法更新主方法中的ArrayList

Java 使用void方法更新主方法中的ArrayList,java,arrays,arraylist,Java,Arrays,Arraylist,我在APCSA上学,在Java方法教科书上遇到了一个问题。我得到了一个main方法,它应该调用一个以ArrayList为参数的void。这将对ArrayList进行排序并返回到main。我知道Java不是通过引用传递的,那么如何让void方法将main方法中的旧ArrayList更新为新的排序的ArrayList呢?另外,如果有一种方法可以做到这一点,您可以对常规数组也这样做吗 编辑:ArrayList代码结束了工作,它有一个我设法修复的小错误。如果您将ArrayList作为参数传递,并在方法内

我在APCSA上学,在Java方法教科书上遇到了一个问题。我得到了一个main方法,它应该调用一个以ArrayList为参数的void。这将对ArrayList进行排序并返回到main。我知道Java不是通过引用传递的,那么如何让void方法将main方法中的旧ArrayList更新为新的排序的ArrayList呢?另外,如果有一种方法可以做到这一点,您可以对常规数组也这样做吗


编辑:ArrayList代码结束了工作,它有一个我设法修复的小错误。

如果您将
ArrayList
作为参数传递,并在方法内部更改该
ArrayList
,它将更改传入它的方法的
ArrayList
。在Java中,对象是通过引用传递的(请注意,这对于像
int
这样的原语不起作用,因为它们是通过值传递的)。

当问一个由代码引起的问题时,如果你提供人们可以用来重现问题的代码,“我知道Java不是通过引用传递的…”,你会得到更好的答案这是正确的,Java总是按值传递。但是,您仍然可以按值传递引用,因为对象是引用类型,
ArrayList
变量的值将是对实际
ArrayList
对象的引用。如果通过复制引用的值传递引用,它仍将引用同一对象。