日期:2014-05-20  浏览次数:20911 次

List<Integer> 数组
想创建一个 List<Integer> 数组
一开始这样做
Java code
class Vertex {
    List<Integer> adj = new ArrayList<Integer>();
}

Vertex[] v = new Vertex[n]

然后在使用
v[i].adj.add(k) 的时候出错 其中 k 是 int 
这是怎么回事?

还有想用另一种做创建如下也出错 是为什么?

Java code
List<Integer>[] adj = new List<Integer>[n];
for (List<Integer> lst: adj)
    lst = new ArrayList<Integer>()


------解决方案--------------------
为什么上面都说是:int是基础类型,不是Integer对象导致的?
难道楼主用的是JDK1.5以下的版本
我觉得应该是空指针异常吧,
Vertex[] v = new Vertex[n]这样试试创建了一个数组,并没有初始化数组里的任何一个元素啊、
Java code

package test;

import java.util.ArrayList;
import java.util.List;

public class Vertex {
    List<Integer> adj = new ArrayList<Integer>();
    public static void main(String[] args) {
        int n = 10, i = 0;
        Vertex[] v = new Vertex[n];
        v[i] = new Vertex();
        v[i].adj.add(10);
    }
}

------解决方案--------------------
探讨

谢谢 你是对的!

那第二种做法为什么有错?或者还有什么好办法创建这种结构?

引用:

为什么上面都说是:int是基础类型,不是Integer对象导致的?
难道楼主用的是JDK1.5以下的版本?
我觉得应该是空指针异常吧,
Vertex[] v = new Vertex[n]这样试试创建了一个数组,并没有初始化数组里的任何一个元素啊、
Java……