将arraylist转换为java中的双数组[0]



我有这样的代码:

public class Test{
        arrayList<String> list = new ArrayList<String>();
        String[][] temp_list;
        public static void main(String[] args)
        {
          String temp = list.get(0);
          temp_list[0] = temp.split(" ");
        }
    }

我想把'list'中的第一项转移到temp_list[0].编译是成功的,但是当我运行它时我得到了错误。这是错误:

 Exception in thread "main" java.lang.NullPointerException
            at Test.main(Test.java:this line=>temp_list[0] = temp.split(" ");)
有人能帮我吗?

这是因为您没有为temp_list分配任何2D-array。(拆分的结果应该存储在哪个数组中?)

这是你的代码片段的工作版本。

import java.util.ArrayList;
public class Test {
    static ArrayList<String> list = new ArrayList<String>();
    static String[][] temp_list;
    public static void main(String[] args) {
        list.add("hello wold");
        // allocate memory for 10 string-arrays.
        temp_list = new String[10][];     <-----------
        String temp = list.get(0);
        temp_list[0] = temp.split(" ");
    }
}

这段代码将无法编译,因为list被声明为类的成员变量,而main是静态方法。

如前所述,list也没有添加任何内容,因此调用list.get(0)将抛出异常(尽管不是空指针)。

在给定的代码中没有分配数组temp_list(没有新建),因此尝试对其进行赋值将抛出空指针异常。

您需要在使用temp_list之前初始化它。您需要指定数组的大小。例如:

int sizeOfArray = 5;
String[][] temp_list = new String[sizeOfArray][];

相关内容

  • 没有找到相关文章

最新更新