是否可以在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函数参数总是按值传递吗?