0

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

public static void reverse(LinkedList<String> linkedlist)

{

//Code would go here...

}

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

4

2 回答 2

1

Java 仅支持按值传递,但您发布的代码不会出错,因为它也是按值传递的。参考这些链接Java 是“按引用传递”还是“按值传递”?, Java 函数参数总是按值传递吗?不可变和按值传递http://www.javaworld.com/javaqa/2000-05/03-qa-0526-pass.html

于 2013-04-19T04:55:30.507 回答
1

如果你在谈论 stockjava.util.LinkedList类,那么当然可以编写这样的方法。事实上,已经有一个:java.util.Collections.reverse(List<?> list)适用于任何可修改的列表(包括LinkedList)。它反转列表的元素。

如果您谈论的是自定义LinkedList类,则取决于该类的实现方式。如果一个LinkedList对象只是带有数据的一系列链接节点,那么不,您无法反转列表,因为您无法更改第一个元素;这将需要更改linkedList参考。您可以在方法内部执行此操作,但不会影响调用代码中的实际参数。这就是按值传递的结果。

但是,java.util.LinkedList不是那样的结构。节点在LinkedList对象本身的内部。对象引用无需更改即可更改所有元素的顺序。

于 2013-04-19T03:54:09.790 回答