Java相关

【LinkedList源码】LinkedList的构造方法源码及

2019-07-27  本文已影响10人  秀叶寒冬

1 LinkedList构造方法

LinkedList继承自AbstractSequentialList类,实现了List、Deque、Cloneable和Serializable接口。linkedList有两个构造方法,一个是无参构造方法,一个是有一个参数的构造方法。构造方法源码如下所示:

/**
     * Constructs an empty list.
     */
    public LinkedList() {
    }

    /**
     * Constructs a list containing the elements of the specified
     * collection, in the order they are returned by the collection's
     * iterator.
     *
     * @param  c the collection whose elements are to be placed into this list
     * @throws NullPointerException if the specified collection is null
     */
    public LinkedList(Collection<? extends E> c) {
        this();
        addAll(c);
    }

如上所示,无参构造方法什么都没有。有参构造方法只有一个参数,参数类型是集合类。有参构造方法调用了无参构造方法,并调用了addAll方法。addAll方法的主要作用是:将指定集合的所有元素添加到当前列表的尾部,按照指定集合的顺序插入,如果在操作正在进行时修改指定的集合,则此操作的行为是不确定的。此处说明了LinkedList不是线程安全的。

2 LinkedList的用法

    public static void main(String[] args) {

        LinkedList<String> list = new LinkedList<>();
        list.add("1");
        list.add("2");
        list.add("3");
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

        System.out.println("------------分割线----------------");
        
        ArrayList<String> list2 = new ArrayList<>();
        list2.add("wo");
        list2.add("ni");
        list2.add("ta");
        
        LinkedList<String> list3 = new LinkedList<>(list2);
        for(int i=0;i<list3.size();i++){
            System.out.println(list3.get(i));
        }
    }

结果:

1
2
3
------------分割线----------------
wo
ni
ta

3 总结

LinkedList不是线程安全的,实现了List和Cloneable接口。

上一篇下一篇

猜你喜欢

热点阅读