[英]Java - Static Void Method - LinkedList - Pass By Value
是否可以在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-reference”还是“pass-by-value”? , Java函数参数是否始终按值传递? , 不变和传递价值 , http://www.javaworld.com/javaqa/2000-05/03-qa-0526-pass.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.