Array
Posted bowenqianngzhibushiwo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Array相关的知识,希望对你有一定的参考价值。
Array:数组 长度一定,存储对象和基本数据类型
ArrayList:实现了list接口 底部是动态数组的链表,可进行2倍扩容存储 对象,地址连续,插入社删除效率较低。支持随机访问。线程不安全,collections.sychronizedlist实现线程安全,或者copyonwriteArraylist 实现一个copy数副本,向副本中添加元素,将原链表中的引用指向副本。
vector:实现list接口 线程安全
LinkedList:底部是双项链表,不需扩容,地址任意,适用于增删操作。每个节点都存储前后的引用,占用内存。
iterate接口,提供了对很多集合进行遍历的方法,使用者无需关注集合内部节后,结构和状态都有iterator来维持,通过hasNext 和next来判断获取下一个元素。
iterator 可对set map等接口遍历
listiterator只能对list进行遍历
iterator只可以向前,listerator既可前可后。
faill-fast fail-safe
1 快速失败
迭代器迭代集合的时候,是直接对集合中的元素进行迭代,此时,迭代器会设置一个modecount来检测结合中的元素有没有被更改,每遍历到下一个元素都和当前的modcount进行比较,不等则抛出concurrentModificationException。在此案城不安全的集合中使用快速失败机制
2 安全失败
迭代器迭代的不是集合中的元素,而先拷贝集合,再对拷贝集合进行遍历,此时的修改与原集合中的元素无关。concurrent包下的集合都是安全失败机制。如concurrenthashmap。
Enumeration迭代器速度快,但线程不安全,不可remove
以上是关于Array的主要内容,如果未能解决你的问题,请参考以下文章