Graphs 2 output

import java.util.ArrayList;
import java.util.HashMap;

public class grph {
private class Vertex{
HashMap<String,Integer> nbrs = new HashMap<>();

}
HashMap<String, Vertex> vtec;
public grph() {
	vtec = new HashMap<>();
}
public int numVertex() {
	return this.vtec.size();
}
public void addVertex(String vname) {
	Vertex vtx = new Vertex();
	vtec.put(vname, vtx);
}
public void removeVertex(String vname) {
	Vertex vtx = vtec.get(vname);
	ArrayList<String> keys = new ArrayList<>(vtx.nbrs.keySet());
	for(String key:keys) {
		 Vertex nbrVtx = vtec.get(key);
		 nbrVtx.nbrs.remove(vname);
	}
	vtec.remove(vname);
}

public boolean containsVertex(String vname) {
	return this.vtec.containsKey(vname);
}
public int numEdges() {
	int count = 0;
	ArrayList<String> keys = new ArrayList<>(vtec.keySet());
	for(String key:keys) {
		Vertex vtx = vtec.get(key);
		count = count + vtx.nbrs.size();
	}
	return count/2;
}
public boolean containsEdge(String vname1, String vname2) {
	Vertex vtx1 = vtec.get(vname1);
	Vertex vtx2 = vtec.get(vname2);
	if(vtx1==null ||vtx2 == null || !vtx1.nbrs.containsKey(vname2)) {
		return false;
	}
	return true;
}
public void addEdge(String vname1, String vname2, int cost) {
	Vertex vtx1 = vtec.get(vname1);
	Vertex vtx2 = vtec.get(vname2);
	if(vtx1==null ||vtx2 == null || !vtx1.nbrs.containsKey(vname2)) {
		return;
	}
	vtx1.nbrs.put(vname2, cost);
	vtx2.nbrs.put(vname1, cost);
}
public void removeEdge(String vname1, String vname2, int cost) {
	Vertex vtx1 = vtec.get(vname1);
	Vertex vtx2 = vtec.get(vname2);
	if(vtx1==null ||vtx2 == null || !vtx1.nbrs.containsKey(vname2)) {
		return;
	}
	vtx1.nbrs.remove(vname2);
	vtx2.nbrs.remove(vname1);
}
public void display() {
	ArrayList<String> keys = new ArrayList<>(vtec.keySet());
	for(String key: keys) {
		Vertex vtx = vtec.get(key);
		System.out.println(key+ " : "+ vtx.nbrs);
	}
}
public static void main(String[] args){
	grph g = new grph();
	g.addVertex("A");
	g.addVertex("B");
	g.addVertex("C");
	g.addVertex("D");
	g.addVertex("E");
	g.addVertex("F");
	g.addVertex("G");
	
	g.addEdge("A", "B", 2);
	g.addEdge("A", "D", 3);
	g.addEdge("B", "C", 1);
	g.addEdge("C", "D", 8);
	g.addEdge("D", "E", 10);
	g.addEdge("E", "F", 45);
	g.addEdge("E", "G", 7);
	g.addEdge("F", "G", 8);
	
	g.display();
}

}

On running the display function, I am getting the wrong output for the function. It is coming out to be as follows:
A : {}
B : {}
C : {}
D : {}
E : {}
F : {}
G : {}

@SrishtiSehgal
import java.util.ArrayList;
import java.util.HashMap;

public class grph {
private class Vertex {
HashMap<String, Integer> nbrs = new HashMap<>();

}

HashMap<String, Vertex> vtec;

public grph() {
	vtec = new HashMap<>();
}

public int numVertex() {
	return this.vtec.size();
}

public void addVertex(String vname) {
	Vertex vtx = new Vertex();
	vtec.put(vname, vtx);
}

public void removeVertex(String vname) {
	Vertex vtx = vtec.get(vname);
	ArrayList<String> keys = new ArrayList<>(vtx.nbrs.keySet());
	for (String key : keys) {
		Vertex nbrVtx = vtec.get(key);
		nbrVtx.nbrs.remove(vname);
	}
	vtec.remove(vname);
}

public boolean containsVertex(String vname) {
	return this.vtec.containsKey(vname);
}

public int numEdges() {
	int count = 0;
	ArrayList<String> keys = new ArrayList<>(vtec.keySet());
	for (String key : keys) {
		Vertex vtx = vtec.get(key);
		count = count + vtx.nbrs.size();
	}
	return count / 2;
}

public boolean containsEdge(String vname1, String vname2) {
	Vertex vtx1 = vtec.get(vname1);
	Vertex vtx2 = vtec.get(vname2);
	if (vtx1 == null || vtx2 == null || !vtx1.nbrs.containsKey(vname2)) {
		return false;
	}
	return true;
}

public void addEdge(String vname1, String vname2, int cost) {
	Vertex vtx1 = vtec.get(vname1);
	Vertex vtx2 = vtec.get(vname2);
	if (vtx1 == null || vtx2 == null || vtx1.nbrs.containsKey(vname2)) {
		return;
	}
	vtx1.nbrs.put(vname2, cost);
	vtx2.nbrs.put(vname1, cost);
}

public void removeEdge(String vname1, String vname2, int cost) {
	Vertex vtx1 = vtec.get(vname1);
	Vertex vtx2 = vtec.get(vname2);
	if (vtx1 == null || vtx2 == null || !vtx1.nbrs.containsKey(vname2)) {
		return;
	}
	vtx1.nbrs.remove(vname2);
	vtx2.nbrs.remove(vname1);
}

public void display() {
	ArrayList<String> keys = new ArrayList<>(vtec.keySet());
	for (String key : keys) {
		Vertex vtx = vtec.get(key);
		System.out.println(key + " : " + vtx.nbrs);
	}
}

public static void main(String[] args) {
	grph g = new grph();
	g.addVertex("A");
	g.addVertex("B");
	g.addVertex("C");
	g.addVertex("D");
	g.addVertex("E");
	g.addVertex("F");
	g.addVertex("G");
	g.addEdge("A", "B", 2);
	g.addEdge("A", "D", 3);
	g.addEdge("B", "C", 1);
	g.addEdge("C", "D", 8);
	g.addEdge("D", "E", 10);
	g.addEdge("E", "F", 45);
	g.addEdge("E", "G", 7);
	g.addEdge("F", "G", 8);
	g.display();
}

}

@SrishtiSehgal
now your code is running find
there was a mistake in this
public void addEdge(String vname1, String vname2, int cost) {
Vertex vtx1 = vtec.get(vname1);
Vertex vtx2 = vtec.get(vname2);
if (vtx1 == null || vtx2 == null || !vtx1.nbrs.containsKey(vname2)) {
return;
}
vtx1.nbrs.put(vname2, cost);
vtx2.nbrs.put(vname1, cost);
}

!vtx1.nbrs.containsKey(vname2) this was the incorrect codition.

I hope I’ve cleared your doubt. I ask you to please rate your experience here
Your feedback is very important. It helps us improve our platform and hence provide you
the learning experience you deserve.

On the off chance, you still have some questions or not find the answers satisfactory, you may reopen
the doubt.