繁体   English   中英

如何将字符串数组 [] 元素转换/添加到列表中<string> [] 大批</string>

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM