[英]How to Convert/add String Array[] elements into List<String> [] Array
I have three arrays of String我有三个字符串的 arrays
String array1 [] = {"A", "B", "C"};
String array2 [] = {"D", "E"};
String array3 [] = {"F", "G", "H", "I"};
I want to store all this arrays into List of String array.我想将所有这些 arrays 存储到字符串数组列表中。
List<String> allArrays[]
My output List allArrays[] should contain我的 output 列表 allArrays[] 应该包含
allArrays[0]= [A,B,C]
allArrays[1]= [D,E]
allArrays[2]= [F,G,H,I]
I have tried below piece of code but getting null pointer exception我试过下面的代码,但得到 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]);
You are not creating and adding to the list correctly.您没有正确创建和添加到列表中。 Since you need an array
of List<String>
, you can do this:由于您需要一个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: Output:
[A, B, C]
[D, E]
[F, G, H, I]
A better way would be using List<List<String>>
:更好的方法是使用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: Output:
[[A, B, C], [D, E], [F, G, H, I]]
Try this:尝试这个:
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]);
}
Try this.尝试这个。
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 output
[[A, B, C], [D, E], [F, G, H, I]]
Of course you get a null Pointer Exception, because you need to creat a new List.当然你会得到一个 null 指针异常,因为你需要创建一个新的列表。 If you set your List to null, you dont create a empty List, you just have a Object, which you can do nothing with.如果您将 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);
It should work if you do it with a LinkedList.如果您使用 LinkedList,它应该可以工作。 By the way, are you using a IDE, when I put your code in Eclipse or any other IDE I get many Warnings, so the NullPointerException wasnt the only that doesnt work in your code.顺便说一句,当我将您的代码放入 Eclipse 或任何其他 IDE 中时,您使用的是 IDE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.