java如何创建一个元素类型是ArrayList的指定长度数组?

不重复造轮子,先阅读这篇文章:

http://t.csdn.cn/0DHqm

此文章介绍了创建出来的方法,但有个问题,这样创建出来的仅仅分配了这么多空间,并没有真的存在一个ArrayList对象,所以,在上面内容的基础上,我们在使用之前,先将我们所需要的固定长度的ArrayList数组中的每一个元素都初始化,这样就实现了指定长度的数组,且不会再报空指针异常

public class demo {
    static StreamTokenizer st = new StreamTokenizer(
            new BufferedReader(new InputStreamReader(System.in)));
    static int N;
    static int M;

    // 静态代码块会在程序运行时首先运行一次
    static ArrayList[] lists = new ArrayList[500010];
    static {
        for(int i = 0; i < 500010; i++){
            lists[i] = new ArrayList();
        }
    }
    static int  next() throws IOException{
        st.nextToken();
        return (int)st.nval;
    }

    public static void main(String[] arg) throws IOException{
        N = next();
        M = next();
        int x, y, flag = 1;
        for(int i = 0; i < M;i++) {
            x = next();
            System.out.println(x);
            y = next();
            System.out.println(y);
            lists[x].add(y);
            lists[y].add(x);
        }
    }
}

你可能感兴趣的:(bug小全,一些技巧和算法,java)