icecave/collections

此包已废弃,不再维护。未建议替代包。

一个受 .NET 运行时和 C++ STL 启发的 PHP 集合库。

1.1.0 2014-03-05 01:30 UTC

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)的元素栈。

迭代器

序列化

提供的集合类型支持序列化,只要集合内包含的元素也是可序列化的。

克隆

提供的集合实现支持克隆。克隆一个集合将产生一个包含相同元素的集合副本。元素本身不会被克隆。