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的主要内容,如果未能解决你的问题,请参考以下文章

php 多个多维数组求交集

mysql 判断两个数组是不是有交集

各种场景方法实现集合

PHP 合并数组 追加数组例子

php 操作数组 (合并,拆分,追加,查找,删除等)

PHP 统计数组中所有的值出现的次数 array_count_values 函数