静态Void方法- LinkedList -按值传递



是否可以在Java中创建以下静态void方法?

public static void reverse(LinkedList<String> linkedlist)
{
//Code would go here...
}

据我所知,由于Java是按值传递的,这是不可能的,对吗?

如果您谈论的是股票java.util.LinkedList类,那么当然可以编写这样的方法。事实上,已经有一个:java.util.Collections.reverse(List<?> list)与任何可修改的列表(包括LinkedList)一起工作。它将列表中的元素反转。

如果你在谈论一个自定义的LinkedList类,这取决于这个类是如何实现的。如果一个LinkedList对象只是一个带有数据的节点的链接序列,那么不,你不能反转列表,因为你不能改变第一个元素;它需要改变linkedList引用的内容。您可以在方法内部这样做,但它不会影响调用代码中的实际参数。这就是按值传递的结果。

然而,java.util.LinkedList不是这样的结构。节点位于LinkedList对象本身的内部。对象引用不需要更改以更改所有元素的顺序。

Java只支持按值传递,但你发布的代码不会犯任何错误,因为它也是按值传递的。引用这些链接是Java的"引用传递"。或"pass-by-value" ?Java函数参数总是按值传递吗?

相关内容

  • 没有找到相关文章

最新更新