Java 使用void方法更新主方法中的ArrayList
我在APCSA上学,在Java方法教科书上遇到了一个问题。我得到了一个main方法,它应该调用一个以ArrayList为参数的void。这将对ArrayList进行排序并返回到main。我知道Java不是通过引用传递的,那么如何让void方法将main方法中的旧ArrayList更新为新的排序的ArrayList呢?另外,如果有一种方法可以做到这一点,您可以对常规数组也这样做吗Java 使用void方法更新主方法中的ArrayList,java,arrays,arraylist,Java,Arrays,Arraylist,我在APCSA上学,在Java方法教科书上遇到了一个问题。我得到了一个main方法,它应该调用一个以ArrayList为参数的void。这将对ArrayList进行排序并返回到main。我知道Java不是通过引用传递的,那么如何让void方法将main方法中的旧ArrayList更新为新的排序的ArrayList呢?另外,如果有一种方法可以做到这一点,您可以对常规数组也这样做吗 编辑:ArrayList代码结束了工作,它有一个我设法修复的小错误。如果您将ArrayList作为参数传递,并在方法内
编辑:ArrayList代码结束了工作,它有一个我设法修复的小错误。如果您将
ArrayList
作为参数传递,并在方法内部更改该ArrayList
,它将更改传入它的方法的ArrayList
。在Java中,对象是通过引用传递的(请注意,这对于像int
这样的原语不起作用,因为它们是通过值传递的)。当问一个由代码引起的问题时,如果你提供人们可以用来重现问题的代码,“我知道Java不是通过引用传递的…”,你会得到更好的答案这是正确的,Java总是按值传递。但是,您仍然可以按值传递引用,因为对象是引用类型,ArrayList
变量的值将是对实际ArrayList
对象的引用。如果通过复制引用的值传递引用,它仍将引用同一对象。