docs / stdlib / collection

Stdlib index
  1. Overview
  1. Captured-borrow migration worklist (3.3.3)
  2. Owned-bind migration worklist (8.2.7)
  3. Return-side title audit — the ride-through enumeration
  4. stdlib ownership audit
  5. stdlib ownership dispositions (plan 1.3.1 / 4.3.1)

aot

  1. Components
  2. Scope
  3. Scoped

codec

  1. Base32
  2. Base64

codec / csv

  1. Csv

codec / json

  1. Json

collection

  1. ArrayList
  2. BPlusTree
  3. Cache
  4. Collectors
  5. HashMap
  6. HashSet
  7. Heap
  8. ImmutableList
  9. ImmutableMap
  10. ImmutableSet
  11. LinkedList
  12. RedBlackTree
  13. Sort

collection / ltm

  1. LtmBPlusTree

concurrent

  1. AtomicInt32
  2. AtomicInt64
  3. Channel
  4. Fiber
  5. FiberLocal
  6. Lock
  7. Mutex
  8. RwLock
  9. Semaphore
  10. Tasks

error

  1. Exception
  2. NoOptionalValueException
  3. NotProvidedException
  4. RecoverableException
  5. ScopedBuildFailedException
  6. ScopeNotActiveException
  7. Throwable
  8. UnrecoverableException

gfx

  1. Sampler
  2. Texture2D

hash

  1. DefaultHasher
  2. Hash
  3. SipHash
  4. XXHash3

ifx

  1. BackendRegistry
  2. Window

io

  1. Buffer

io / file

  1. File
  2. FileInfo
  3. FileReader
  4. FileWriter
  5. Path
  6. Watcher

io / net

  1. BufferPool
  2. ByteBuffer
  3. IpAddress
  4. Server
  5. ServerBuilder
  6. SocketAddress
  7. TcpListener
  8. TcpStream
  9. UdpSocket

io / net / dns

  1. Dns

io / net / uri

  1. Uri
  2. UriBuilder

lang

  1. Guid
  2. Math
  3. Optional
  4. Pair
  5. Slice
  6. String
  7. StringBuilder

lang / stream

  1. ArrayStream
  2. Stream

math

  1. Camera
  2. Color
  3. DType
  4. Ray
  5. Rotation
  6. Tensor
  7. Transform

math / fft

  1. Fft

math / linalg

  1. LinAlg

math / npio

  1. Npy

math / poly

  1. Poly

math / random

  1. Generator

math / stats

  1. Stats

nucleo

  1. Columns — the Arrow-laid-out substrate
  2. Fused tensor expressions — Fuse
  3. Table — the lazy, typed dataframe
  4. Tape — define-by-run autograd
  5. Transform intrinsics — Grad, Vmap, Jit

process

  1. Command
  2. Process

reflect

  1. Class

search / distance

  1. Distance

search / fuzzy

  1. Matcher

search / ngram

  1. Index

session

  1. PackageInstallException
  2. Packages

time

  1. Clock
  2. DateTimeFormatter
  3. Duration
  4. Instant
  5. LocalDate
  6. LocalDateTime
  7. LocalTime
  8. Period
  9. ZonedDateTime
  10. ZoneId
  11. ZoneOffset

wire

  1. Compressor
  2. CompressStream
  3. DecompressionLimitException
  4. Decompressor
  5. Encoder
  6. Schema
  7. SchemaEncoder

xpu

  1. Device
  2. KernelBuffer
  3. KernelStream
  4. KernelTimer

xpu / mesh

  1. MeshSimplifier

ImmutableMap<K, V>

cajeta.collection.ImmutableMap — immutable, hash-indexed map: a frozen snapshot of (key, value) pairs indexed by a read-only SwissTable. Entries are stored once in dense arrays (insertion order, cheap to index by keyAt / valAt) with an O(1) get / containsKey index built once — no put, remove, tombstones, or resize. Built from an ArrayList<Pair<K, V>>; duplicate keys resolve last-wins. Hashing and equality follow the HashMap contract: K.hash() indexes, == decides key equality.

ArrayList<Pair<int32, int32>> src = heap ArrayList<Pair<int32, int32>>();
src.add(heap Pair<int32, int32>(1, 100));
src.add(heap Pair<int32, int32>(2, 200));

// The `#` surrenders `src`, whose pairs move into the map.
ImmutableMap<int32, int32> m = heap ImmutableMap<int32, int32>(#src);
int32 v = m.get(2);              // 200
boolean has = m.containsKey(3);  // false
int32 k0 = m.keyAt(0);           // 1 — dense, insertion order

Methods

Signature
ImmutableMap(#ArrayList<Pair<K, V>> src) ⚑Build a frozen map from src (last-wins on duplicate keys), which is consumed, so the call must write #src
V get(K key)Value bound to key, or the type’s zero value if absent
boolean containsKey(K key)True iff key is present
V operator[] (K key)Subscript sugar over get
int64 count()Number of entries
boolean isEmpty()True iff the map holds no entries
K keyAt(int32 i)Key at dense index i (0-based, insertion order); zero value if out of range
V valAt(int32 i)Value at dense index i (0-based, insertion order); zero value if out of range

⚑ = @EntryPoint

See also

Source: docs/stdlib/collection/ImmutableMap.md · 1 min read · 239 words