我对涉及多个维度的数组列表和结构相当陌生,因此,如果有人可以帮助我解决这个问题或给我一个关于如何实现这一点的提示,我将非常感激。
我的程序的目标是创建 2 个单独的数组列表。这两个数组列表中的每一个都应该有 4 个其他数组列表作为它们的参数。
将有信息传递到这些子数组列表中,并且这个数组列表将被存储回父数组列表中。
我在互联网上查找了如何获得我在这里描述的结构,但没有结果。如果这是一个简单的问题,我很抱歉,但我真的被卡住了。
ArrayList<ArrayList<String>> parent=new ArrayList<ArrayList<String>>();
ArrayList<String> arr1=new ArrayList<String>();
arr1.add("S1");
arr1.add("S2");
arr1.add("S3");
arr1.add("S4");
ArrayList<String> arr2=new ArrayList<String>();
arr2.add("S5");
arr2.add("S6");
ArrayList<String> arr3=new ArrayList<String>();
arr3.add("S7");
arr3.add("S8");
arr3.add("S9");
arr3.add("S10");
ArrayList<String> arr4=new ArrayList<String>();
arr4.add("S11");
arr4.add("S12");
parent.add(arr1);
parent.add(arr2);
parent.add(arr3);
parent.add(arr4);
ArrayList<ArrayList<String>> parent2=new ArrayList<ArrayList<String>>();
arr1=new ArrayList<String>();
arr1.add("S1");
arr1.add("S2");
arr1.add("S3");
arr1.add("S4");
arr2=new ArrayList<String>();
arr2.add("S5");
arr2.add("S6");
arr3=new ArrayList<String>();
arr3.add("S7");
arr3.add("S8");
arr3.add("S9");
arr3.add("S10");
arr4=new ArrayList<String>();
arr4.add("S11");
arr4.add("S12");
parent2.add(arr1);
parent2.add(arr2);
parent2.add(arr3);
parent2.add(arr4);
Parent 和 parent2 是您的数组列表...
您可以创建这样的数据结构:
public static void main(String[] args) {
ArrayList<?> a = list(list("A", "B"),
list("C", "D"),
list("E", "F"),
list("G", "H"));
ArrayList<?> b = list(list("I", "J"),
list("K", "L"),
list("M", "N"),
list("O", "P"));
}
private static <T> ArrayList<T> list(T... values) {
return new ArrayList<T>(Arrays.asList(values));
}
不考虑对象/类ArrayList
或...
如果我理解得很好,您有一个父对象(让我们使用某个Parent
类),其中包含两个列表(我们将调用它们first
,second
但想一些更适合您的上下文的东西)并且每个列表应该包含 4 个其他列表(让我们称它们为north
, east
,south
和west
,但又是你的上下文..)。
在这里我们可以看到一些“故障”,主要是因为列表通常不是固定大小的,所以让我们回滚first
并second
为它们使用一些新类(我们称之为FourList
,但是上下文)。我们现在有:
class Parent {
private FourList first;
private FourList second;
// getter, setter, ...
}
class FourList {
private List<?> north;
private List<?> east;
private List<?> south;
private List<?> west;
// getter, setter, ...
}
简短版,将所有内容都切成简单的片段,并在您的上下文中有意义
ArrayList arr1 = new ArrayList();
ArrayList arr2 = new ArrayList();
ArrayList arr3 = new ArrayList();
arr3.add("from arr3");
arr2.add(arr3);
arr1.add(arr2);
for(int i=0;i<arr1.size();i++){
System.out.println("i:"+arr1.get(i));
for(int j=0;j<((ArrayList)arr1.get(i)).size();j++){
System.out.println("j:"+((ArrayList)arr1.get(i)).get(j));
for(int k=0;k<((ArrayList)((ArrayList)arr1.get(i)).get(j)).size();k++){
System.out.println("j:"+((ArrayList)((ArrayList)arr1.get(i)).get(j)).get(k));
}
}
}
output:
i:[[from arr3]]
j:[from arr3]
k:from arr3