java - 如何将字符串数组 [] 元素转换/添加到列表中[] 大批
问题描述
我有三个字符串数组
String array1 [] = {"A", "B", "C"};
String array2 [] = {"D", "E"};
String array3 [] = {"F", "G", "H", "I"};
我想将所有这些数组存储到字符串数组列表中。
List<String> allArrays[]
我的输出列表 allArrays[] 应该包含
allArrays[0]= [A,B,C]
allArrays[1]= [D,E]
allArrays[2]= [F,G,H,I]
我试过下面的代码,但得到空指针异常
String array1 [] = {"A", "B", "C"};
String array2 [] = {"D", "E"};
String array3 [] = {"F", "G", "H", "I"};
List<String> allArrays[] =null;
allArrays[0].addAll(Arrays.asList(array1));
//Null pointer exception here
allArrays[1].addAll(Arrays.asList(array2));
allArrays[2].addAll(Arrays.asList(array3));
System.out.println(b[0]);
System.out.println(b[1]);
System.out.println(b[2]);
解决方案
您没有正确创建和添加到列表中。由于您需要array
of List<String>
,您可以这样做:
String array1 [] = {"A", "B", "C"};
String array2 [] = {"D", "E"};
String array3 [] = {"F", "G", "H", "I"};
List<String>[] allArrays = new ArrayList[3];
List<String> list = new ArrayList<String>();
Collections.addAll(list, array1);
allArrays[0] = list;
list = new ArrayList<String>();
Collections.addAll(list, array2);
allArrays[1] = list;
list = new ArrayList<String>();
Collections.addAll(list, array3);
allArrays[2] = list;
System.out.println(allArrays[0]);
System.out.println(allArrays[1]);
System.out.println(allArrays[2]);
输出:
[A, B, C]
[D, E]
[F, G, H, I]
更好的方法是使用List<List<String>>
:
String array1 [] = {"A", "B", "C"};
String array2 [] = {"D", "E"};
String array3 [] = {"F", "G", "H", "I"};
List<List<String>> allArrays = new ArrayList<>();
allArrays.add(Arrays.asList(array1));
allArrays.add(Arrays.asList(array2));
allArrays.add(Arrays.asList(array3));
System.out.println(allArrays);
输出:
[[A, B, C], [D, E], [F, G, H, I]]
推荐阅读
- python - ValueError:长度必须匹配才能进行比较
- java - SSL期间在openshift上运行的Kafka出错
- perl - 循环遍历perl中的列的问题
- reactjs - 为选定页面导出带有道具的导航栏
- amazon-web-services - 从 CSV 创建新的 DynamoDB 表
- css - 如何将 CSS 关键帧名称作为变量传递?
- javascript - 我该如何解决
- python - 如何在纯python中执行2个矩阵的张量积
- android - android 通知不会延迟 60 秒但会在 3 秒内触发
- selenium-webdriver - 每次运行 Protractor 时,Chrome 浏览器都会打开,即使将 firefox 设置为浏览器也是如此