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
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.
Now in your Dart code, you can use:
import 'package:circular_buffer/circular_buffer.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');
}
}
Official Website: https://pub.dev/packages/circular_buffer