2014-12-04 3 views
-1

В этом методе я могу удалить все нули из связанного списка, но я не уверен, как получить доступ к связанному списку. Мне не разрешено изменять параметры метода, но я могу изменить возврат. Как я могу получить доступ к связанному списку, чтобы изменить его?Доступ к связанному списку по методу

public domino removeZero() { 
    // ****** student exercise 



    return this; 
} 

Это линия, которая вызывает метод:

train = train.removeZero(); 

Имя класса домино.

Вот полная программа http://pastebin.com/EwNJj9mV

+2

Я не уверен, что вы спрашиваете? –

+1

В вашем классе есть поле со связанным списком? Тогда вы можете работать над 'this.myList'. – Thilo

+0

Как мне получить доступ к связанному списку, который, как я полагаю, должен удалить нули? Могу ли я позвонить в домино, затем отредактировать? Что я должен возвращать? – aeipownu

ответ

0

Я подозреваю, что вам нужно, чтобы узнать некоторые основы объектно-ориентированного программирования, а затем повторно задать вопрос. Метод, который вы включили в свой вопрос (removeZero), является членом класса (домино), у которого есть поля, к которым вы можете получить доступ внутри метода. Другими словами removeZero имеет доступ к связанному списку, потому что это метод связанного объекта списка.

В этом случае код будет что-то вроде:

public domino removeZero() { 
    domino first = null; 
    for (domino current = this; current.next != null; current = current.next) { 
     if (current.spot1 == 0 || current.spot2 == 0) { 
      if (current.back != null) 
       current.back.next = current.next; 
      if (current.next != null) 
       current.next.back= current.back; 
     } else if (first == null) { 
      first = current; 
     } 
    } 
    return first; 
} 

Кстати, вы должны сообщить своему учителю использовать заглавные буквы, чтобы начать имена классов. Его следует называть Domino, а не домино.

+0

Этот код на самом деле не работает.Вот это оригинальный выход Поезд имеет нулевые автомобили удалены [0 | 0] <--> [3 | 4] <--> [7 | 8] <--> [1 | 6] <--> [1 | 4] <--> [7 | 7] <--> [1 | 1] <--> [3 | 0] <--> [7 | 9] <--> [3 | 6] <--> [5 | 4] <--> [6 | 5] <--> [4 | 6] <--> [0 | 1] <--> [2 | 5] <--> [8 | 3] <--> [9 | 9] <--> [7 | 6] <--> [9 | 8] <--> [1 | 9] <--> и вот ваш выход Поезд имеет нулевые автомобили удалены [3 | 4] <--> [7 | 8] <--> [1 | 6] <--> [1 | 4] <--> [7 | 7] <--> [1 | 1 ] <--> [3 | 0] <--> [7 | 9] <--> [3 | 6] <--> [5 | 4] <--> [6 | 5] <--> [4 | 6] <--> [0 | 1] <--> [2 | 5] <--> [8 | 3] <--> [9 | 9] <--> [7 | 6] <--> [9 | 8] <--> [1 | 9] <--> – aeipownu

1

Вы можете использовать какой-либо метод getter setter , как хранить связанный список в статической переменной другого класса, а не в методе получить значение статической переменной.

import java.util.LinkedList; 

public class linkedListStorage { 

private static LinkedList linkedList; 

public static LinkedList getLinkedList() { 
    return linkedList; 
} 

public static void setLinkedList(LinkedList linkedList) { 
    linkedListStorage.linkedList = linkedList; 
} 
} 

теперь, когда вы получите ваш LinkedList положить его с помощью метода сеттер

import java.util.LinkedList; 
class JunitTest { 
public static void main(String[] args) { 
    // set linked list to storage class's variable 
    linkedListStorage.setLinkedList(your linked list variable); 
} 
} 

теперь использовать свой связанный список в методе

public domino removeZero() { 
// ****** student exercise 
// get your linked list from storage class 
LinkedList ll = linkedListStorage.getLinkedList(); 


return this; 
} 
Смежные вопросы