fixed_queue 1.0.0 copy "fixed_queue: ^1.0.0" to clipboard
fixed_queue: ^1.0.0 copied to clipboard

a queue with a fixed maximum size

fixed_queue #

A simple Dart package that provides a FixedQueue, a queue with a fixed maximum size. When the queue is full and a new element is added, the oldest element is discarded.

This data structure is useful for scenarios like maintaining a history of recent events, caching, or managing a buffer of a constant size.

Features #

  • Fixed Size: Enforces a maximum number of elements.
  • FIFO on Overflow: When a new item is added to a full queue, the first (oldest) item is removed.
  • Iterable: Implements Iterable<T>, allowing you to use for-in loops, toList(), etc.
  • Indexed Access: Provides [] operator for direct access to elements by index.

Getting started #

Add fixed_queue to your pubspec.yaml dependencies:

dependencies:
  fixed_queue: ^1.0.0

Then, run dart pub get or flutter pub get.

Usage #

Import the package and create an instance of FixedQueue.

import 'package:fixed_queue/fixed_queue.dart';

void main() {
  // Create a queue with a maximum size of 2.
  final queue = FixedQueue<String>(maxSize: 2);

  // The queue is initially empty.
  print('Length: ${queue.length}'); // Output: Length: 0

  // Add some elements.
  queue.push("a");
  queue.push("b");

  // The queue is now full.
  print('Queue: ${queue.toList()}'); // Output: Queue: [a, b]
  print('Length: ${queue.length}'); // Output: Length: 2

  // Add another element. "a" (the oldest element) will be removed.
  queue.push("c");

  print('Queue after overflow: ${queue.toList()}'); // Output: Queue after overflow: [b, c]
  print('Length: ${queue.length}'); // Output: Length: 2

  // You can access elements by index.
  print('Element at index 0: ${queue[0]}'); // Output: Element at index 0: b
  print('Element at index 1: ${queue[1]}'); // Output: Element at index 1: c
}
1
likes
140
points
101
downloads

Publisher

unverified uploader

Weekly Downloads

a queue with a fixed maximum size

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

More

Packages that depend on fixed_queue