Java 如何测试图中的节点是否连接(带边)?
简单一点: 如果我有一张城市图,比如: 柏林(边缘:伦敦,柏林)--下一个-->伦敦(边缘:巴黎)--下一个-->巴黎 我有一种断开节点连接的方法,例如 (伦敦、巴黎) 我想测试(JUnit)断开连接是否成功。我的想法是:编写一个方法isStillConnected(London),如果London没有边缘列表,则返回false;如果边缘列表为null,则返回true。代码思想:Java 如何测试图中的节点是否连接(带边)?,java,graph,linked-list,nodes,adjacency-list,Java,Graph,Linked List,Nodes,Adjacency List,简单一点: 如果我有一张城市图,比如: 柏林(边缘:伦敦,柏林)--下一个-->伦敦(边缘:巴黎)--下一个-->巴黎 我有一种断开节点连接的方法,例如 (伦敦、巴黎) 我想测试(JUnit)断开连接是否成功。我的想法是:编写一个方法isStillConnected(London),如果London没有边缘列表,则返回false;如果边缘列表为null,则返回true。代码思想: public boolean isStillConnected(ListItem<Node<City,
public boolean isStillConnected(ListItem<Node<City, Road>> berlin) {
boolean edgeExists = false;
if(berlin.key.edgesGoingToHere.key.whereEdgeGoesTo != null) {
edgeExists = true;
}
return edgeExists;
}
public布尔值已连接(列表项){
布尔边存在=假;
if(berlin.key.edgesGoingToHere.key.whereEdgeGoesTo!=null){
edgeExists=真;
}
回归边缘主义;
}
问题:如果边缘没有边缘(我正在请求),则会有一个空指针,因为我想访问空的“whereEdgeGoesTo”
EdgesGoingTo这是边缘列表的标题。
其中EdgeGeoSto是边所指向的节点
谢谢你的回答 我不确定我是否仅仅通过查看那一小部分代码就理解了您的对象结构,但假设if语句正在检查正确的值,以避免出现
nullPointerException
,而不是读取列表中的值并将其与null进行比较,使用.size()检查列表的大小
如果该值大于0,则返回true。您使用了disconnect(伦敦、巴黎)
作为示例。您的目标是断开伦敦与所有其他节点的连接,还是仅断开伦敦与巴黎的连接?或者,你的目标是让伦敦和巴黎一样与所有其他节点断开连接?