是否可以在 Java 中创建以下静态 void 方法?
public static void reverse(LinkedList<String> linkedlist)
{
//Code would go here...
}
据我了解,由于 Java 是按值传递的,这是不可能的,对吗?
是否可以在 Java 中创建以下静态 void 方法?
public static void reverse(LinkedList<String> linkedlist)
{
//Code would go here...
}
据我了解,由于 Java 是按值传递的,这是不可能的,对吗?
Java 仅支持按值传递,但您发布的代码不会出错,因为它也是按值传递的。参考这些链接Java 是“按引用传递”还是“按值传递”?, Java 函数参数总是按值传递吗?,不可变和按值传递,http://www.javaworld.com/javaqa/2000-05/03-qa-0526-pass.html
如果你在谈论 stockjava.util.LinkedList
类,那么当然可以编写这样的方法。事实上,已经有一个:java.util.Collections.reverse(List<?> list)
适用于任何可修改的列表(包括LinkedList
)。它反转列表的元素。
如果您谈论的是自定义LinkedList
类,则取决于该类的实现方式。如果一个LinkedList
对象只是带有数据的一系列链接节点,那么不,您无法反转列表,因为您无法更改第一个元素;这将需要更改linkedList
参考。您可以在方法内部执行此操作,但不会影响调用代码中的实际参数。这就是按值传递的结果。
但是,java.util.LinkedList
不是那样的结构。节点在LinkedList
对象本身的内部。对象引用无需更改即可更改所有元素的顺序。