java - 如何将哈希映射中的值映射到链接列表?
问题描述
我需要从给定的代码中计算一个类的祖先类的数量。
为此,我正在扫描代码,并且能够找出类以及它们是否扩展。如果类扩展了什么是扩展该类的类。因此,因此,我将这些数据插入到哈希映射中,其中包含作为键的类和作为值扩展该类的类。如果一个类没有扩展,它将包含一个空字符串 ("")。因此,我需要将这些类放入一个链接列表中,以便获得这些类的完整连接。
例如,假设我在哈希图中有以下值:
(A,B) - This means A extends B
(B,C) - This means B extends C
(D,E)
(E,F)
因此,A 扩展 B 和 B 扩展 C。所以,我需要做的是,我需要将这些数据放在链接列表中,以便查看连接并识别祖先。一旦将它们放入链接列表中,我需要它们也位于数组列表中。
所以它就像 A->B->C(数组列表中的一项),D->E->F(数组列表中的另一项)。所以,到目前为止,我将类存储在一个 Hashmap 中,我也实现了一个双向链接列表。我需要找出一种方法来将此哈希映射中的数据映射到包含链接列表的 ArrayList。谁能告诉我如何做到这一点?
我需要在 Java 中执行此操作。我已经使用 Eclipse 来执行此操作。
我需要将哈希映射类映射到包含这些链接列表的数组列表。
解决方案
我很确定您的问题有几十种可能的解决方案。但我立即想到的是图形实现。
- 将 Hash Map 中的每个对元素呈现为一个基本图,其中包括两个具有特殊值的节点和一条连接它们的边。
- 使用任何众所周知的算法,遍历每个图并在节点值匹配的情况下 - 只需将这些图组合到新的图中,包括重复节点合并。
- 总而言之,在所有创建的图表都标记为“已访问”之后 - 将所有值添加到每个图表的唯一链接列表中。
推荐阅读
- c# - C# Windows Service Enviroment.GetFolderPath() 返回空字符串
- assembly - BIOS 中断 13 读取扇区不起作用
- macos - 如何确定 .swp 文件的来源和/或内容?
- arduino - 使用带有 tft 触摸屏的 arduino uno 来控制 LED 灯条
- qt - QML 中 Flickable 中的 ScrollView 内的 ScrollBar
- javascript - 函数中的 Javascript 变量值不会传递给其他函数
- c# - 如何判断一个精灵是否正在接触 Unity2D 中的另一个精灵
- java - 我用Java启动kettle,但找不到大数据插件
- javascript - Javascript:在发送所有http请求后异步打印消息
- javascript - 无法弄清楚为什么 JSON.parse 出乎意料