首页 > 解决方案 > 如何将字符串数组 [] 元素转换/添加到列表中[] 大批

问题描述

我有三个字符串数组

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

标签: javaarraysstringlist

解决方案


您没有正确创建和添加到列表中。由于您需要arrayof 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]]

推荐阅读