dequeue(): Queue<T> {
        if (this._data.length === 0) throw "Can not remove from an empty queue.";
        this._data.shift();
        return this;
    }