gpt4 book ai didi

java - 需要存储3个数据集的数据结构

转载 作者:太空宇宙 更新时间:2023-11-04 08:02:27 25 4
gpt4 key购买 nike

我有 3 个数据集,例如 A B 和 C。A 包含 5 个元素的单个数组。 B 包含一个二维数组,C 也包含一个二维数组。A包含5个独立于B和C的元素。对于A中的每个元素,B中的每个元素都与B中的每个元素相关联,而对于B的数组中的每个元素,C中都有一个数组相关联..所以我想将这些数据集存储在一个数据结构中,以便在A中选择一个元素应该在B中给出适当的元素数组,在B的数组中选择一个元素应该给出C中的一个元素..任何人都可以建议我一个..我正在使用java编程语言来实现这个数据结构..

最佳答案

如果我理解正确的话,您正在寻找从 A 的元素到 B 的元素,以及从这些元素到 C 的映射。实现此目的的最简单方法是使用一些 HashMap 或任何其他实现 Map 接口(interface)的类,例如:

List<TypeA> a = new ArrayList<TypeA>();
Map<TypeA, List<TypeB>> b = new HashMap<TypeA, List<TypeB>>();
Map<TypeB, List<TypeC>> c = new HashMap<TypeB, List<TypeC>>();

这样,a就是你的数组Aba 中的元素映射到列表,即 2D 数组 B 中的行。同样,c 将这些行中的元素映射到列表,即 C 中的行。

或者,您可以对所有三个使用单个嵌套的Map:

Map<TypeA, Map<TypeB, List<TypeC>>> abc = 
new HashMap<TypeA, Map<TypeB, List<TypeC>>>;

这样,abc 中的键就对应于您的数组 A。每个键的值又是一个映射,其键是 B 中与 A 中的元素相对应的行元素。最后,每个键的值是 C 中与 B 中的元素相对应的行。

请注意,Map 中的键没有排序,因此如果顺序很重要(例如,如果您必须以任何特定顺序迭代A,或者如果您必须通过某个索引访问它们),您应该采用第一个解决方案。如果顺序对于 bc 也很重要,您可以尝试以下操作:

List<TypeA> a = new ArrayList<TypeA>();
List<List<TypeB>> b = new ArrayList<List<TypeB>>();
List<List<TypeC>> c = new ArrayList<List<TypeC>>();
Map<TypeA, Integer> ab = new HashMap<TypeA, Integer>();
Map<TypeB, Integer> bc = new HashMap<TypeB, Integer>();

这里,abc直接对应于您的ABC(如果您知道它们将有多少个元素,您也可以使用数组)。然后,abbc 保存从 a(或 b)的每个元素到 b(或 c)中相应索引的映射。请注意,每当将元素插入 ab 时,您都必须更新 abbc

因此,如果顺序不重要,我会推荐第二种解决方案,因为这样您就不必“同步”abc

关于java - 需要存储3个数据集的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12634986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com