在Java中存储加权边的有效方法吗?

问题描述

来自菜鸟Java初学者的请求。我知道这是一个幼稚的问题,但是到目前为止,我还没有找到令人满意的解决方案。当前关于stackoverflow的一些帖子要么是针对未加权的图,要么是涉及复杂的图实现工作。

我有一组顶点,分别用整数1、2、3,...标记,其中一些顶点与无向加权边链接(权重也是整数)。我已经通过使用HashSet设法存储了这些顶点,这对于我进行操作(添加,搜索,删除等)足够方便了。

但是,我很难通过使用Java中的内置数据结构来存储这些边缘。 通常,我只需要一个简单的内置数据结构来存储带权重的边,这样我就可以快速搜索和选择链接到某个顶点的边。我有一些天真的想法。例如,ArrayList >和HashMap (认为后一个将无法按预期工作,我只想为边缘(a, b)作为从数据结构中获取权重的输入),但是,使用它们显然效率低下。 我不想使用邻接矩阵,因为它的大小足够大以至于我无法接受。

仅通过使用Java中的内置数据结构,这样的需求是否可行?如果是,您能告诉我该怎么办?如果不是,您能否提出一个图形实现,它对于上述工作而言很容易?预先谢谢你。

解决方法

老实说,我发现我想在Java中经常使用元组,并且没有内置的元组类。我结束了自己的工作-这是简单易懂的泛型。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...