Java 需要数据结构来存储3个数据集

Java 需要数据结构来存储3个数据集,java,arrays,data-structures,Java,Arrays,Data Structures,我有3个数据集,比如A、B和C。 一个包含5个元素的单个数组。B包含2D数组,C也包含2D数组。 A包含5个独立于B和C的元素。 对于A中的每个元素,在B中关联一个数组,对于该B数组中的每个元素,在C中关联一个数组。。所以我想将这些数据集存储在一个数据结构中,这样在a中选择一个元素应该得到B中合适的元素数组,在B的数组中选择一个元素应该得到C的元素。。有人能给我推荐一个吗..我正在使用java编程语言来实现这个数据结构..// // <Value, index in A&g

我有3个数据集,比如A、B和C。 一个包含5个元素的单个数组。B包含2D数组,C也包含2D数组。 A包含5个独立于B和C的元素。 对于A中的每个元素,在B中关联一个数组,对于该B数组中的每个元素,在C中关联一个数组。。所以我想将这些数据集存储在一个数据结构中,这样在a中选择一个元素应该得到B中合适的元素数组,在B的数组中选择一个元素应该得到C的元素。。有人能给我推荐一个吗..我正在使用java编程语言来实现这个数据结构..

//
//         <Value, index in A>
vector<pair<Value, int>> A;
//                <Value, index in C>  
vector<vector<pair<Value, int>> B;
//            Values in C
vector<vector<Value>> C;
载体A; // 向量
/
载体A;
//                  

vector如果我理解正确,您正在寻找从a元素到B元素以及从a元素到C元素的映射。实现这一点的最简单方法是使用一些
哈希映射
,或实现
映射
接口的任何其他类,例如:

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>>();
这样,
abc
中的键对应于数组A。每个键的值也是一个映射,其键是B中的行的元素,对应于A中的元素。最后,每个键的值是C中的行,对应于B中的元素

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

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>();
List a=new ArrayList();
列表b=新的ArrayList();
列表c=新的ArrayList();
Map ab=新的HashMap();
Map bc=新的HashMap();
这里,
a
b
c
直接对应于您的a、b和c(如果您知道它们将有多少个元素,您也可以使用数组)
ab
bc
然后保持从
a
(或
b
)的每个元素到
b
(或
c
)中相应索引的映射。请注意,每当在
a
b
中插入元素时,都必须更新
ab
bc


因此,如果顺序不重要,我建议使用第二种解决方案,因为这样您就不必“同步”
a
b
c
,如果我理解正确,您正在寻找从a元素到b元素的映射,实现这一点的最简单方法是使用一些
HashMaps
,或实现
Map
接口的任何其他类,例如:

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>>();
这样,
abc
中的键对应于数组A。每个键的值也是一个映射,其键是B中的行的元素,对应于A中的元素。最后,每个键的值是C中的行,对应于B中的元素

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

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>();
List a=new ArrayList();
列表b=新的ArrayList();
列表c=新的ArrayList();
Map ab=新的HashMap();
Map bc=新的HashMap();
这里,
a
b
c
直接对应于您的a、b和c(如果您知道它们将有多少个元素,您也可以使用数组)
ab
bc
然后保持从
a
(或
b
)的每个元素到
b
(或
c
)中相应索引的映射。请注意,每当在
a
b
中插入元素时,都必须更新
ab
bc


因此,如果顺序不重要,我建议使用第二种解决方案,因为这样您就不必“同步”
a
b
c

您能解释一下您使用的“vector”的语法和用法吗。。我也许能用java找到一个。你能解释一下你用过的“vector”的语法和用法吗。。我也许能用java找到一个。