来自菜鸟 Java 初学者的请求。我知道这是一个幼稚的问题,但直到现在我还没有找到令人满意的解决方案。目前在 stackoverflow 上的一些帖子要么是针对未加权的图,要么涉及复杂的图实现工作。
我有一组顶点,用整数 1、2、3、...标记,其中一些与无向加权边链接(权重也是整数)。我已经设法通过使用 HashSet 来存储这些顶点,这对我来说非常方便(添加、搜索、删除等)
但是,我很难通过使用 Java 中的内置数据结构来存储这些边。 一般来说,我只想要一个简单的内置数据结构来存储带有权重的边,这样我就可以快速搜索和选择链接到某个顶点的边。我有一些主要的幼稚想法。例如, ArrayList<ArrayList<ArrayList>> & HashMap<int[], Integer> (认为后者不会按预期工作,我只想为边缘(a,b)设置一对整数顶点为输入从数据结构中获取权重)但是,它们显然使用起来效率低下。我不想使用邻接矩阵,因为它的大小足以让我无法接受。
简单地使用Java内置的数据结构,这样的需求是否可行?如果是,你能告诉我该怎么做吗?如果没有,你能想出一个对上述工作很容易的图形实现吗?先感谢您。