[英]How to Convert/add String Array[] elements into List<String> [] Array
我有三个字符串的 arrays
String array1 [] = {"A", "B", "C"};
String array2 [] = {"D", "E"};
String array3 [] = {"F", "G", "H", "I"};
我想将所有这些 arrays 存储到字符串数组列表中。
List<String> allArrays[]
我的 output 列表 allArrays[] 应该包含
allArrays[0]= [A,B,C]
allArrays[1]= [D,E]
allArrays[2]= [F,G,H,I]
我试过下面的代码,但得到 null 指针异常
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]);
您没有正确创建和添加到列表中。 由于您需要一个List<String>
array
,您可以这样做:
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]);
Output:
[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);
Output:
[[A, B, C], [D, E], [F, G, H, I]]
尝试这个:
String[] array1 = {"A", "B", "C"};
String[] array2 = {"D", "E"};
String[] array3 = {"F", "G", "H", "I"};
List<String>[] listArr = new ArrayList[3];
listArr[0] = new ArrayList<>(Arrays.asList(array1));
listArr[1] = new ArrayList<>(Arrays.asList(array2));
listArr[2] = new ArrayList<>(Arrays.asList(array3));
for (int i = 0; i < 3; i++) {
System.out.println(listArr[i]);
}
尝试这个。
String array1 [] = {"A", "B", "C"};
String array2 [] = {"D", "E"};
String array3 [] = {"F", "G", "H", "I"};
List<String>[] allArrays = new List[] {
Arrays.asList(array1),
Arrays.asList(array2),
Arrays.asList(array3)
};
System.out.println(Arrays.toString(allArrays));
output
[[A, B, C], [D, E], [F, G, H, I]]
当然你会得到一个 null 指针异常,因为你需要创建一个新的列表。 如果您将 List 设置为 null,则不会创建一个空 List,您只会有一个 Object,您对此无能为力。
String array1 [] = {"A", "B", "C"};
String array2 [] = {"D", "E"};
String array3 [] = {"F", "G", "H", "I"};
List<String[]> allArrays;
allArrays = new LinkedList<>();
allArrays.add(array1);
allArrays.add(array1);
allArrays.add(array1);
String[] array4 = allArrays.get(0);
String[] array5 = allArrays.get(1);
String[] array6 = allArrays.get(2);
System.out.println(array4);
System.out.println(array5);
System.out.println(array6);
如果您使用 LinkedList,它应该可以工作。 顺便说一句,当我将您的代码放入 Eclipse 或任何其他 IDE 中时,您使用的是 IDE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.