icecave / collections
此包已废弃,不再维护。未建议替代包。
一个受 .NET 运行时和 C++ STL 启发的 PHP 集合库。
1.1.0
2014-03-05 01:30 UTC
Requires
- php: >=5.3
- ext-mbstring: *
- icecave/parity: ~1
- icecave/repr: ~1
Requires (Dev)
- eloquent/liberator: ~1
- icecave/archer: ~1
This package is auto-updated.
Last update: 2022-02-01 12:23:11 UTC
README
此项目已被作者弃用。
集合提供了一套受 .NET 运行时和 C++ 标准模板库启发的集合类型。
理由
PHP长期以来缺乏正式、高效的集合类型。SPL中添加以堆为中心的集合在某种程度上解决了这个问题,但在某些方面还不够。例如,SplDoublyLinkedList没有公开一些链表旨在高效解决的操作,如集合中间的插入和删除操作。还存在几个不完整的抽象。一个例子是SplQueue,它公开了用于操作队列头和尾的方法。
概念
- 集合:集合是一个存储其他对象(称为元素)的对象。
- 可变集合:可变集合是可以在其上添加和删除元素的集合。
- 可迭代:可迭代集合允许在不修改集合的情况下按顺序访问元素。
- 可变可迭代:可以就地修改的可迭代集合。
- 序列:序列是一个大小可变的集合,其元素按严格的线性顺序排列。
- 可变序列:支持插入和删除元素的序列。
- 随机访问序列:提供按位置访问元素功能的序列。
- 可变随机访问序列:允许按位置插入和删除元素的序列。
- 关联集合:支持基于键高效检索值的可变大小集合。
- 可变关联集合:支持插入和删除元素的可变关联集合。
- 队列访问:一种先进先出/后进先出(F/LIFO)的缓冲区(即栈和队列)。
- 集合:无序、可迭代的唯一元素集合。
集合
- 向量:一种可变序列,通过位置和迭代高效访问。
- 链表:一种可变序列,具有高效添加和删除元素的能力。
- 映射:通过键高效访问的关联集合。
- 集合:具有唯一元素的可迭代集合。
- 队列:一个先入先出(FIFO)的元素队列。
- 优先队列:一个带优先级的先入先出(FIFO)的元素队列。
- 栈:一个后入先出(LIFO)的元素栈。
迭代器
序列化
提供的集合类型支持序列化,只要集合内包含的元素也是可序列化的。
克隆
提供的集合实现支持克隆。克隆一个集合将产生一个包含相同元素的集合副本。元素本身不会被克隆。