阅读量:0
要自定义一个Java邻接表类,首先需要了解邻接表的基本概念。邻接表是一种表示图的数据结构,它通过映射每个顶点到其相邻顶点的列表来表示图。在Java中,可以使用Map和List来实现邻接表。
以下是一个简单的邻接表类的实现:
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class AdjacencyList<T> { // 使用Map和List来存储邻接表 private Map<T, List<T>> adjacencyList = new HashMap<>(); // 添加顶点 public void addVertex(T vertex) { if (!adjacencyList.containsKey(vertex)) { adjacencyList.put(vertex, new ArrayList<>()); } } // 添加边 public void addEdge(T from, T to) { if (!adjacencyList.containsKey(from)) { addVertex(from); } if (!adjacencyList.containsKey(to)) { addVertex(to); } adjacencyList.get(from).add(to); } // 获取顶点的相邻顶点列表 public List<T> getAdjacentVertices(T vertex) { return adjacencyList.get(vertex); } // 获取所有顶点 public List<T> getVertices() { return new ArrayList<>(adjacencyList.keySet()); } }
这个类可以用于表示任何类型的图,例如无向图、有向图等。你可以根据需要对这个类进行扩展,例如添加删除顶点和边的方法、检查图中是否存在某个顶点或边等。