Adetayo Akinsanya unkletayo.dev
Engineering / Tags / #Data Structures
#Data Structures 27 Articles

Articles tagged with #Data Structures

A curated list of engineering series, deep dives, and notes related to #Data Structures.

Engineering Java Collections From Scratch • Part 25 2026-11-10

Building a Custom In-Memory Data Store in Java: The Collections Capstone

Build a production-grade in-memory key-value database in Java from scratch using custom data structures: HashMaps, LRU caches, priority queues, and SkipLists.

Read →
Engineering Java Collections From Scratch • Part 24 2026-11-06

Java Specialized Queues: SynchronousQueue Handoffs & DelayQueue Expiration

Master Java SynchronousQueue and DelayQueue internals. Learn zero-capacity thread handoffs and how Delayed Min-Heaps power task schedulers.

Read →
Engineering Java Collections From Scratch • Part 23 2026-11-03

Lock-Free Sorted Range Queries: ConcurrentSkipListMap & SkipLists in Java

Learn how ConcurrentSkipListMap uses SkipLists and atomic CAS pointers to deliver lock-free sorted range queries across 64+ CPU cores in Java.

Read →
Engineering Java Collections From Scratch • Part 22 2026-10-30

Java BlockingQueue Performance: ArrayBlockingQueue vs LinkedBlockingQueue

Compare ArrayBlockingQueue vs LinkedBlockingQueue in Java. Learn how dual-lock splitting eliminates contention in multi-threaded task queues.

Read →
Engineering Java Collections From Scratch • Part 21 2026-10-27

Java IdentityHashMap Internals: Reference Equality & Open Addressing Probing

Learn how Java IdentityHashMap uses reference equality (==) and flat array linear probing to prevent infinite recursion in object graph serializers.

Read →
Engineering Java Collections From Scratch • Part 20 2026-10-23

Java WeakHashMap Internals: Preventing Memory Leaks with Weak References

Explore how Java WeakHashMap uses WeakReference keys and ReferenceQueue polling to prevent memory leaks in caches and plugin frameworks.

Read →
Engineering Java Collections From Scratch • Part 19 2026-10-20

High-Performance Java: How EnumSet and EnumMap Achieve Zero-Allocation Speed

Discover why EnumSet and EnumMap are the fastest collections in Java. Learn how 64-bit long bitmasks execute set operations in 1 CPU cycle.

Read →
Engineering Java Collections From Scratch • Part 18 2026-10-16

Java ConcurrentHashMap Internals: Lock-Free CAS & Fine-Grained Bucket Sync

Deep dive into Java 8+ ConcurrentHashMap internals. Learn how lock-free CAS, volatile reads, and bucket-level synchronized locks handle high concurrency.

Read →
Engineering Java Collections From Scratch • Part 17 2026-10-13

Java Concurrent Collections: CopyOnWriteArrayList vs Unmodifiable vs List.of()

Compare Fail-Fast vs Fail-Safe collections in Java. Learn CopyOnWriteArrayList memory mechanics and the difference between List.of() and unmodifiable wrappers.

Read →
Engineering Java Collections From Scratch • Part 16 2026-10-09

Java PriorityQueue Internals: Building a Min-Heap Array from Scratch

Build a custom PriorityQueue in Java using a flat Min-Heap array. Learn parent-child index formulas, siftUp, and siftDown algorithms.

Read →
Engineering Java Collections From Scratch • Part 15 2026-10-06

Java TreeMap Internals: Building a Navigable Sorted Map from Scratch

Build a custom TreeMap in Java. Learn how NavigableMap range queries and custom Comparators maintain sorted keys in O(log N) time.

Read →
Engineering Java Collections From Scratch • Part 14 2026-10-02

Red-Black Tree Rotations Explained: Self-Balancing Trees in Java

Demystify Red-Black tree rotations and recoloring. Understand how Java TreeMap and HashMap maintain O(log N) balance guarantees.

Read →
Engineering Java Collections From Scratch • Part 13 2026-09-29

Building a Binary Search Tree (BST) in Java: Recursive Operations & Range Queries

Implement a Binary Search Tree in Java. Learn recursive insertion, in-order traversal for sorted data, and why skewed trees degrade.

Read →
Engineering Java Collections From Scratch • Part 12 2026-09-25

Building a Custom LRU Cache in Java Using LinkedHashMap

Build an LRU Cache in Java in 10 lines of code by extending LinkedHashMap and leveraging access-order doubly linked entry pointers.

Read →
Engineering Java Collections From Scratch • Part 11 2026-09-22

How Java HashSet Works Under the Hood: Building a Set via Composition

Discover how Java HashSet uses composition to wrap HashMap key uniqueness, spending zero extra memory on static dummy value references.

Read →
Engineering Java Collections From Scratch • Part 10 2026-09-18

Java HashMap Internals (Part 2): Load Factor, Resizing & Red-Black Treeification

Learn how Java HashMap resizes its bucket table when reaching load factor threshold, and how JDK 8 treeifies long bucket chains.

Read →
Engineering Java Collections From Scratch • Part 9 2026-09-15

Java HashMap Internals (Part 1): Hashing Functions, Buckets & Separate Chaining

Deep dive into Java HashMap internals. Learn how hash functions, bitwise masking, and separate bucket chaining store key-value pairs.

Read →
Engineering Java Collections From Scratch • Part 8 2026-09-11

Building a Double-Ended Queue (Deque) in Java for Sliding Window Algorithms

Implement a custom ArrayDeque in Java for dual-ended operations. Solve sliding window maximum algorithms in O(1) time.

Read →
Engineering Java Collections From Scratch • Part 7 2026-09-08

Building a Circular Queue in Java: Array Ring Buffers and Modulo Math

Build a high-performance circular array queue in Java. Eliminate O(N) array shifts using modulo arithmetic head and tail pointers.

Read →
Engineering Java Collections From Scratch • Part 6 2026-09-04

Building a Custom Java Stack: LIFO Mechanics & Why Legacy Stack is Broken

Build a custom LIFO Stack in Java. Learn why java.util.Stack is obsolete and how ArrayDeque provides better performance.

Read →
Engineering Java Collections From Scratch • Part 5 2026-09-01

Java Iterator and modCount: How Fail-Fast Iteration Prevents Data Corruption

Explore how Java iterators use modCount to throw ConcurrentModificationException and prevent silent data corruption during list traversal.

Read →
Engineering Java Collections From Scratch • Part 4 2026-08-28

Java LinkedList Internals: Building a Doubly Linked List from Scratch

Learn how Java LinkedList works under the hood by building a doubly linked list. Compare ArrayList vs LinkedList performance trade-offs.

Read →
Engineering Java Collections From Scratch • Part 3 2026-08-25

How Java ArrayList Works Internally: Building a Dynamic Array from Scratch

Build a custom ArrayList in Java from scratch. Understand dynamic array resizing, System.arraycopy performance, and garbage collection.

Read →
Engineering Kafka from First Principles • Part 3 2026-08-25

The Append-Only Log Abstraction: Why Immutability Rules Event Streaming

Explore the append-only log data structure behind Apache Kafka. Learn how immutability enables lock-free concurrency and multi-team data replay.

Read →
Engineering Java Collections From Scratch • Part 2 2026-08-21

Java equals() and hashCode() Contract: Avoiding Silent HashMap Bugs

Learn the unbreakable contract between equals() and hashCode() in Java to prevent silent HashMap lookup bugs and memory leaks.

Read →
Engineering Java Collections From Scratch • Part 1 2026-08-18

Java Memory Model Explained: Stack vs Heap Allocation for Arrays

Understand how the JVM allocates memory on the stack and heap when declaring primitive and object reference arrays in Java.

Read →
Engineering Java Collections From Scratch • Part 0 2026-08-14

Mastering Java Collections from First Principles: Series Introduction & Learning Roadmap

Discover what you will learn in this 25-part series on Java Collections internals. Build data structures from scratch and master memory mechanics.

Read →