写一道图论题需要使用邻接表,我寻思Java中跟C++写法一样,
C++中:
vector<int>G[N];
然而:
Vector<Integer>[] G = new Vector<Integer>[100010];
Cannot create a generic array of Vector<Integer>
java在编译期间会进行类型擦除,如果你这么创建,出现了类型错误编译器是无法检查到的,例如你往Integer里面插入string,但是编译期间无法发现错误。
所以直接禁止了这种写法。
给出一种解决方案:
Vector<Integer>[] G = (Vector<Integer>[]) new Vector<?>[100010];
for (int i = 1; i <= 100000; i++)
G[i] = new Vector<Integer>();