如何从ArrayList <arraylist <string []>获取元素?

时间:2018-05-06 09:54:08

标签: java android arrays string arraylist

我有一个arraylist arraylists有字符串[] s,即

ArrayList<ArrayList> arraymain = new ArrayList<>();
ArrayList<String[]> arraysub = new ArrayList<>();

现在,将元素添加到arraysub,

arraysub.add(new String[]{"vary","unite"});
arraysub.add(new String[]{"new","old"});

我试过了:

arraymain.get(0).get(0)[1];

但我收到一个错误:期望数组类型;找到'java.lang.Object' 我现在如何检索数据(存储在字符串[]中的字符串)?

3 个答案:

答案 0 :(得分:6)

更改内部ArrayList的类型:

ArrayList<ArrayList<String[]>> arraymain = new ArrayList<>();
ArrayList<String[]> arraysub = new ArrayList<>();

这样arraymain.get(0).get(0)将返回String[]而不是Object

如果将变量声明为List s,而不是强制执行特定的List,那会更好:

List<List<String[]>> arraymain = new ArrayList<>();
List<String[]> arraysub = new ArrayList<>();

答案 1 :(得分:2)

但是arraymain只接受字符串数组类型的arraylists,如果你想在arraymain中存储不同数组类型的不同arraylists,那么这将是解决方案:

ArrayList<ArrayList<Object[]>> arraymain = new ArrayList<ArrayList<Object[]>>();
ArrayList<Object[]> arraysub = new ArrayList<Object[]>();
arraysub.add(new String[]{"kk"});
arraymain.add(arraysub);
ArrayList<Object[]> arraysub2 = new ArrayList<Object[]>();
arraysub2.add(new Integer[]{1,2});
arraymain.add(arraysub2);

答案 2 :(得分:0)

    ArrayList<ArrayList<String>> outer = new ArrayList<ArrayList<String>>();
    ArrayList<String> inner = new ArrayList();

    inner.add("ABC");
    inner.add("XYZ");
    inner.add("CDF");

    outer.add(inner);

    ArrayList<String> orderList = outer.get(0);
    String first = orderList.get(0);
    String second = orderList.get(1);
    String third = orderList.get(2);

    System.out.println("FirstValue: "+first);
    System.out.println("SecondValue: "+second);
    System.out.println("ThirdValue: "+third);