为什么ArrayList数组会';你不能用Java工作吗?
我在Java中使用整数数组列表,但它无法运行。每次我收到消息 “注意:Goal.java使用未经检查或不安全的操作。”以及 “注意:使用-Xlint:unchecked重新编译以获取详细信息。”编译后,当我想要运行它时,会出现消息“Exception in thread”main“java.lang.NullPointerException” 代码为(全部在主方法中):为什么ArrayList数组会';你不能用Java工作吗?,java,Java,我在Java中使用整数数组列表,但它无法运行。每次我收到消息 “注意:Goal.java使用未经检查或不安全的操作。”以及 “注意:使用-Xlint:unchecked重新编译以获取详细信息。”编译后,当我想要运行它时,会出现消息“Exception in thread”main“java.lang.NullPointerException” 代码为(全部在主方法中): intv=8; ArrayList[]adj=新的ArrayList[11]; adj[0].添加(21); 错误属于最后一
intv=8;
ArrayList[]adj=新的ArrayList[11];
adj[0].添加(21);
错误属于最后一行。
搜索了很多,但什么也没有!plz帮助,已停滞数小时。您应该首先初始化阵列的所有索引:
int v = 8;
ArrayList<Integer>[] adj = new ArrayList[11];
for(int i=0; i<adj.length; i++) {
adj[i] = new ArrayList<>();
}
adj[0].add(21);
intv=8;
ArrayList[]adj=新的ArrayList[11];
对于(int i=0;i,根据注释部分,人们对ArrayList数组中的null元素的看法是正确的。要解决NullPointerException,应该在声明和实例化之后立即初始化数组的元素
下面是修改后的代码:
ArrayList<Integer>[] adj = new ArrayList[11];
for (int i = 0; i < 11; i++)
adj[i] = new ArrayList<Integer>();
adj[0].add(21);
ArrayList[]adj=新的ArrayList[11];
对于(int i=0;i<11;i++)
adj[i]=新的ArrayList();
adj[0].添加(21);
您尚未初始化数组的任何元素。因此,您有一个由11个null
ArrayList
s组成的数组。这是否回答了您的问题?有关NPE,请参阅。有关警告,请参阅。
ArrayList<Integer>[] adj = new ArrayList[11];
for (int i = 0; i < 11; i++)
adj[i] = new ArrayList<Integer>();
adj[0].add(21);