0
点赞
收藏
分享

微信扫一扫

java的第八次学习

IT影子 2022-04-25 阅读 43
java学习

文章目录

ArrayList的了解

与Linkedlist的差异

关于ArrayList我们需要知道的是他是一个底层有数组构成的一个动态数组,也就是说他可以调控自己的大小,说到这里我们不禁想起了LinkedList,Linkedlist的底层却是链表构成的,所以他们各有各的优势.

Arraylist最关键的是在于它的扩容方法

这个方法确定了它是一个动态数组,可以更改数组的大小,而我们平常使用的数组是静态的,不可以更改大小。
这是源码中的扩容:

private void grow(int minCapacity) {
        int oldCapacity = elementData.length;
        int newCapacity = oldCapacity + (oldCapacity >> 1);
        if (newCapacity - minCapacity < 0)
            newCapacity = minCapacity;
        if (newCapacity - MAX_ARRAY_SIZE > 0)
            newCapacity = hugeCapacity(minCapacity);
        elementData = Arrays.copyOf(elementData, newCapacity);

为了方便观看我自己也写了一个扩容:

public String[] big(){
        initial = initial+1;
        String[] news = new String[initial];
        for(int i=0;i<arrays.length;i++){
            news[i] = arrays[i];
        }
       return news;
    }

Arraylist与Linkedlist的对比

Arraylist查询,访问元素的效率高。但是插入和删除元素的效率不高。
Linkedlist访问,查询效率比如Arraylist,但是插入和删除元素的效率却略胜一筹。

举报

相关推荐

第八次java作业

java第八次作业

【java第八次作业】

Java第八次作业

第八次作业

鸿蒙第八次作业

第八次前端培训

第八次培训作业

MySQL第八次作业

0 条评论