我有一个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' 我现在如何检索数据(存储在字符串[]中的字符串)?
答案 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);