2013-04-19 1 views
0

Возможно ли создать следующий статический метод void в Java?Java - метод статической пустоты - LinkedList - Pass By Value

public static void reverse(LinkedList<String> linkedlist) 

{ 

//Code would go here... 

} 

Как я понимаю, поскольку Java является передачей по значению, это невозможно, правильно?

+1

Вы пытались закодировать это посмотреть, что происходит, прежде чем отправлять сюда? LinkedList является переменной * reference *, и в этом вся разница. Мое предложение: попробуйте сначала. Этот сайт плохо подходит для вашего собственного Java-компилятора. –

+0

Вы попробовали? –

+1

Подсказка: существует статический метод 'Collections.reverse (Список list)', который работает для любого вида изменяемого списка, включая 'LinkedList'. –

ответ

1

Если вы говорите об акции java.util.LinkedList класса, то, безусловно, можно написать такой метод. Фактически, уже есть один: java.util.Collections.reverse(List<?> list), который работает с любым изменяемым списком (включая LinkedList). Он меняет элементы списка.

Если вы говорите о обычном классе LinkedList, это зависит от того, как реализуется класс. Если объект LinkedList - это просто связанная серия узлов с данными, то нет, вы не можете отменить список, потому что вы не можете изменить первый элемент; потребовалось бы изменить то, что linkedList ссылок. Вы можете сделать это внутри метода, но это не повлияет на фактический параметр в вызывающем коде. Это следствие пропускной стоимости.

Однако java.util.LinkedList не структурирован так. Узлы являются внутренними для самого объекта LinkedList. Ссылка на объект не нуждается в изменении, чтобы изменить порядок всех элементов.

1

Java поддерживает только передачу по значению, но код, который вы отправили, не приведет к ошибке, поскольку он также передается по значению. передать эти ссылки Is Java "pass-by-reference" or "pass-by-value"?, Are Java function parameters always passed-by-value?, Immutable and pass by value, http://www.javaworld.com/javaqa/2000-05/03-qa-0526-pass.html

Смежные вопросы