Java 实现星型搜索算法时的NullPointerException
我正在构建一个应用程序,该应用程序使用星号来计算两个房间之间的路线。但是,在测试算法时,我遇到了NullPointrException。 这是我的顶点类: Vertex.javaJava 实现星型搜索算法时的NullPointerException,java,nullpointerexception,a-star,Java,Nullpointerexception,A Star,我正在构建一个应用程序,该应用程序使用星号来计算两个房间之间的路线。但是,在测试算法时,我遇到了NullPointrException。 这是我的顶点类: Vertex.java package testalgo; import java.util.ArrayList; public class Vertex { /** * @param args */ int vertexNumber; int x; int y; pu
package testalgo;
import java.util.ArrayList;
public class Vertex {
/**
* @param args
*/
int vertexNumber;
int x;
int y;
public Vertex(int vertNum, int x,int y){
vertexNumber = vertNum;
this.x = x;
this.y = y;
}
public int getVertexNum(){
return vertexNumber;
}
public int getX(){
return x;
}
public int getY(){
return y;
}
public double distanceTo(Vertex other){
return Math.sqrt( Math.pow( x -other.x, 2) + Math.pow( y- other.y,2) );
}
}
这是我的图形类:
Graph.java
package testalgo;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Graph
{
static ArrayList<Vertex> vertices = new ArrayList<Vertex>();
static HashMap<Integer, LinkedList<Integer>> adj =new HashMap<Integer, LinkedList<Integer>>();
static Vertex v;
static Scanner sc;
public Graph(ArrayList<Vertex> verts ){
}
public static void addVertextToVertices(Vertex v1){
vertices.add(v1);
}
public static void addVertex(int vertexNumber)
{
adj.put(vertexNumber, new LinkedList<Integer>());
}
public static void addEgde(int vertexIndex, int vertexIndex2) {
adj.get(vertexIndex).add(vertexIndex2);
}
public static List<Integer> getNeighbors(int v) {
return adj.get(v);
}
}
谢谢你的帮助 您尚未初始化v并尝试像以下那样使用它:
Node start_Node = new Node (start,null, 0.0, v.distanceTo(goal));
^^
用可能是初始起始顶点初始化它。哪一行是AStar中的99行?编辑:刚刚找到@jhamon Node start_Node=new Node(start,null,0.0,v.distanceTo(goal))的可能重复项;我在它旁边放了一条评论,我明白了。我会试试的。非常感谢。
Exception in thread "main" java.lang.NullPointerException
at testalgo.AStar.findPath(AStar.java:99)
at testalgo.AStar.main(AStar.java:90)
Node start_Node = new Node (start,null, 0.0, v.distanceTo(goal));
^^