Learn R Programming

High Performance Container Data Types

Github: https://github.com/randy3k/collections

Documentation: https://randy3k.github.io/collections/

Provides high performance container data types such as queues, stacks, deques, dicts and ordered dicts. Benchmarks https://randy3k.github.io/collections/articles/benchmark.html have shown that these containers are asymptotically more efficient than those offered by other packages.

Installation

You can install the released version of collections from CRAN with:

install.packages("collections")

Install the latest development version using

devtools::install_github("randy3k/collections")

Example

library(collections, warn.conflicts = FALSE)

Queue

q <- queue()
q$push(1)$push(2)
q$pop()
## [1] 1

Stack

s <- stack()
s$push(1)$push(2)
s$pop()
## [1] 2

Deque

dq <- deque()
dq$push(1)$pushleft(2)
dq$pop()
## [1] 1

Priority Queue

pq <- priority_queue()
pq$push("not_urgent")
pq$push("urgent", priority = 2)
pq$push("not_as_urgent", priority = 1)
pq$pop()
## [1] "urgent"
pq$pop()
## [1] "not_as_urgent"
pq$pop()
## [1] "not_urgent"

Dictionary. Comparing to R environments, dict() does not leak memory and supports various other types of keys.

d <- dict()
e <- new.env()
d$set(e, 1)$set(sum, 2)$set(c(1L, 2L), 3)
d$get(c(1L, 2L))
## [1] 3

Ordered Dictionary

d <- ordered_dict()
d$set("b", 1)$set("a", 2)
d$as_list()
## $b
## [1] 1
## 
## $a
## [1] 2

Copy Link

Version

Install

install.packages('collections')

Monthly Downloads

30,757

Version

0.3.11

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Randy Lai

Last Published

February 5th, 2026

Functions in collections (0.3.11)

cls

Inspect objects
deprecated

Deprecated Functions
stack

Stack
deque

Double Ended Queue
dict

Dictionary
ordered_dict

Ordered Dictionary
priority_queue

Priority Queue
queue

Queue
collections-package

collections: High Performance Container Data Types