A Dart Circular Buffer Container Based on List with a Fixed Capacity

dart-circularbuffer

A circular buffer with a fixed capacity supporting all Dart List operations.

final buffer = CircularBuffer<int>(3)..add(1)..add(2);
print(buffer.length); // 2
print(buffer.first); // 1
print(buffer.isFilled); // false
print(buffer.isUnfilled); // true

buffer.add(3);
print(buffer.length); // 3
print(buffer.isFilled); // true
print(buffer.isUnfilled); // false

buffer.add(4);
print(buffer.first); // 4

Use this package as a library

Depend on it

Run this command:

With Dart:

 $ dart pub add circular_buffer

With Flutter:

 $ flutter pub add circular_buffer

This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get):


dependencies:
  circular_buffer: ^0.10.0

Alternatively, your editor might support dart pub get or flutter pub get. Check the docs for your editor to learn more.

Import it

Now in your Dart code, you can use:

import 'package:circular_buffer/circular_buffer.dart';

example/main.dart

import 'package:circular_buffer/circular_buffer.dart';

void main() {
  final cb = CircularBuffer<int>(5);

  final list = <int>[4, 5, 1, -3, 8, 2, 6, 7, 4, 5];
  var sum = 0;
  double mean;
  for (final a in list) {
    final first = cb.isFilled ? cb.first : 0;
    cb.add(a);
    sum += cb.last - first;

    mean = sum.toDouble() / cb.length;

    // ignore: avoid_print
    print('Inserting $a:\tsum=$sum\tmean=$mean');
  }
}

Download Details: 

Official Website: https://pub.dev/packages/circular_buffer


 

A Dart Circular Buffer Container Based on List with a Fixed Capacity
10.90 GEEK