java - Java 循环遍历数组列表

标签 java arraylist hashmap hierarchy

我正在读取 Excel 工作表中的项目列表。每个项目名称都有一个从同一列表定义的父项目名称(作为单独的列)。因此,这形成了一个树层次结构,其中一个项目是同一列表中另一个项目的父项,并且父项还有多个子项。 项目名称在整个列表中并不唯一。 项目仅在特定父项下才是唯一的。

每个项目的 ID 是在从输入文件读取时生成的。 现在我想获取每个项目的父项目的 ID。

对于从文件中读取的当前记录,父项可能出现在我们尚未读取的行中,因此我们不知道其父项的 id。

当我想到一个逻辑时,它会导致反复循环数组列表和 HashMap 键集来获取它。

我需要帮助来获得更好的逻辑来解决这个问题。提前致谢!

编辑1:

现在我在定义 Excel 工作表本身的结构时遇到问题。我需要它对用户友好。当名称不唯一时,如何定义项目记录的父项?我是否应该强制用户按层次结构顺序本身提供 Excel,以便我可以轻松识别子项的父项?

最佳答案

你可以使用一个简单的

HashMap<Parent, List<Child>>允许使用每个父键存储多个值 - 只需根据需要将子项附加到键控列表即可。或者,考虑使用 MultiMap 来保存数据。

关于java - Java 循环遍历数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28677131/

相关文章:

Java Gson 在 HashMap 中序列化和反序列化对象(key,Object)

java - useDelimiter 无法识别竖线

java - 对象数组列表到字符串数组

java - Vector.remove(Object e) 在 Java 中如何工作?

java - 如何通过多个字符串值查找全部?

java - 使用java打印数组列表中元素的出现次数

java - 如何从 HashMap 中提取 ArrayList 并在 Java 中循环遍历它?

java - 根据类别拆分数组列表的最佳方法

c++ - 唯一键和散列的无序映射

java - 无法理解 java 中 HashMap 的清除方法的实现