繁体   English   中英

Java - 静态空方法 - LinkedList - 按值传递

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM