list与linkedlist(添加、删除元素)

1)jdk1.8中list遍历过程中可以直接删除元素了(jdk1.7可以通过倒序遍历删除或iterator遍历删除元素)

 

List<Integer> list = new ArrayList<>();
        list.add(0,1);
        list.add(0,2);
        list.add(0,3);
        list.add(0,4);
        System.out.println(list);

        // list遍历过程中可以直接删除元素
        for (int i = 0; i < list.size(); ++i) {
            Integer each = list.get(i);
            if (each == 2) {
                list.remove(each);
            }
        }
        System.out.println(list);

        List<Integer> linkedList = new LinkedList<>();
        linkedList.add(0, 10);
        linkedList.add(0, 100);
        linkedList.add(0,50);
        linkedList.add(0, 80);
        System.out.println(linkedList);

 

 

2)java中list的底层实现是数组,且随着元素增加需要动态扩容。linkedlist是双向链表,实现了list接口及deque接口。

3)

list.add(index, element)操作,会移动index及之后的元素到后面,当超过数组长度上限时,就会进行扩容。

linkedlist.add(index, node)也是在指定位置增加元素,会调整新增结点及现有node结点的指针指向。

posted @ 2022-06-29 11:20  江湖凶险  阅读(316)  评论(0编辑  收藏  举报