在Dartlang的链表上实现Iterable类?

时间:2019-01-30 00:28:23

标签: linked-list dart iterable

我知道dart:collection库具有出色的Linked List实现。但是,我正在尝试自己将链接列表作为MOOC的一部分来实现。

这是我非常简单的链表实现

import './node.dart';

class LinkedList {
  // root node of the list
  Node root = null;
  // the number of items on the list
  int _count = 0;

  // returns true if root is not set
  bool isEmpty(){
    return this.root == null;
  }

  // getter for the _count variable;
  get count{
    return this._count;
  }

  // push method to push a new item to the end of the list
  push(String content) {
    Node item = new Node(content);
    if (this.root == null) {
      this._count += 1;
      this.root = item;
    } else {
      Node iterator = root;
      while (iterator.next != null) {
        iterator = iterator.next;
      }
      this._count += 1;
      iterator.next = item;
    }
    return item;
  }
}

我希望它实现Iterable Class属性和方法,例如foreach和length。我阅读了Iterable和IterableMixin类的文档,但由于文档仅提供了将Map用作Iterable的示例,因此我仍在努力了解如何将其与LinkedList类一起使用。

1 个答案:

答案 0 :(得分:1)

扩展IterableBase docs,您应该可以参加!