Как я могу проверить, связан ли узел (с ребрами) в графе? - PullRequest
0 голосов
/ 16 января 2020

Попытка быть простой: если у меня есть график таких городов, как:

Берлин (ребра: Лондон, Берлин) --следующий -> Лондон (ребер: Париж) --следующий -> Париж .

И у меня есть способ отключить узлы, например

disconnect (Лондон, Париж);

Я хочу проверить (JUnit), было ли отключение успешным. Моя идея: написать метод isStillConnected (London), который возвращает false, если в Лондоне нет списка ребер / если список ребер равен нулю, иначе true. Идея кода:

public boolean isStillConnected(ListItem<Node<City, Road>> berlin) {
    boolean edgeExists = false;
    if(berlin.key.edgesGoingToHere.key.whereEdgeGoesTo != null) {
        edgeExists = true;
    }
    return edgeExists;      
}

ПРОБЛЕМА: Если ребро не имеет ребра (который я запрашиваю), существует NULLPOINTER, потому что я хочу получить доступ к "whereEdgeGoesTo", который равен нулю.

dgeGoingToHere является главой Edge-списка. гдеEdgeGoesTo - это узел, на который указывает Edge.

Спасибо за любой ответ!

1 Ответ

1 голос
/ 16 января 2020

Я не уверен, что понимаю структуру ваших объектов, просто глядя на эту небольшую часть кода, но предполагая, что оператор if проверяет правильные значения, чтобы избежать nullPointerException вместо чтения значений в списке. и сравнивая их с нулем, проверьте размер списка с помощью .size() и верните true, если это значение больше 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...