唠唠SE的集合-04——ArrayList

论坛 期权论坛 脚本     
匿名技术用户   2020-12-28 14:01   25   0

4. ArrayList(使用频率最高

底层数据结构是数组查询快,增删慢;线程不安全,效率高

数组为什么是查询快?因为数组的内存空间地址是连续的。

ArrayList底层维护了一个Object[] 用于存储对象,默认数组的长度是10。

可以通过 new ArrayList(20)显式的指定用于存储对象的数组的长度。

当默认的或者指定的容量不够存储对象的时候,容量自动增长为原来的容量的1.5倍。

由于ArrayList是数组实现,在添加元素的时候会牵扯到数组增容,以及拷贝元素,所以慢。数组是可以直接按索引查找,所以查找时较快。

我们来举一个栗子:

import java.util.ArrayList;
import java.util.Iterator;

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("abc");
        list.add("def");
        list.add("abc");
        list.add("abc");
        list.add("ert");
        list.add("qaz");
        
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            if (iterator.next().equals("abc")) {
                iterator.remove(); // 不能用list.remove,会引起异常
            }
        }
        
        System.out.println(list);
    }
}

转载于:https://my.oschina.net/LinkedBear/blog/1615346

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP