如何创建多维Arraylists

时间:2013-05-23 18:36:31

标签: java arraylist

我对涉及多个维度的arraylists和结构都很陌生,因此如果有人可以帮我解决这个问题或者给我一个如何实现这个目标的提示,我会非常感激。

我的计划的目标是创建2个单独的arraylists。这两个arraylists中的每一个都应该有4个其他arraylists作为参数。

将会有信息传递给这些儿童arraylists,这个arraylist将被存储回父级arraylist。

我已经在网上查询了如何获得我在这里描述的结构,但没有结果。 如果这是一个简单的问题,我很抱歉,但我真的被卡住了。

非常感谢提前!

4 个答案:

答案 0 :(得分:2)

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);

父母和父母2是你的辩护人......

答案 1 :(得分:0)

您可以创建如下数据结构:

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));
}

答案 2 :(得分:0)

认为对象/类不是ArrayList或......

如果我理解得很好,你有一个父对象(让我们使用一些Parent类),包含两个列表(我们称之为firstsecond但是想一些更合适的东西对于您的上下文),每个列表应包含4个其他列表(让我们称之为northeastsouthwest,但再一次是您的上下文..)。

在这里我们可以看到一些“故障”,主要是因为列表通常不是固定大小的,所以让我们回滚到firstsecond并为它们使用一些新类(我们称之为{ {1}},但上下文)。我们现在有:

FourList

简短的版本,将所有内容切割成简单的部分,并在您的上下文中具有意义

答案 3 :(得分:0)

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