OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of dart.collection; | 5 part of dart.collection; |
6 | 6 |
7 /** | 7 /** |
8 * A [Queue] is a collection that can be manipulated at both ends. One | 8 * A [Queue] is a collection that can be manipulated at both ends. One |
9 * can iterate over the elements of a queue through [forEach] or with | 9 * can iterate over the elements of a queue through [forEach] or with |
10 * an [Iterator]. | 10 * an [Iterator]. |
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
402 return _table[_head]; | 402 return _table[_head]; |
403 } | 403 } |
404 | 404 |
405 E elementAt(int index) { | 405 E elementAt(int index) { |
406 if (index < 0 || index > length) { | 406 if (index < 0 || index > length) { |
407 throw new RangeError.range(index, 0, length); | 407 throw new RangeError.range(index, 0, length); |
408 } | 408 } |
409 return _table[(_head + index) & (_table.length - 1)]; | 409 return _table[(_head + index) & (_table.length - 1)]; |
410 } | 410 } |
411 | 411 |
412 List<E> toList({ bool growable: false }) { | 412 List<E> toList({ bool growable: true }) { |
413 List<E> list; | 413 List<E> list; |
414 if (growable) { | 414 if (growable) { |
415 list = new List<E>()..length = length; | 415 list = new List<E>()..length = length; |
416 } else { | 416 } else { |
417 list = new List<E>(length); | 417 list = new List<E>(length); |
418 } | 418 } |
419 _writeToList(list); | 419 _writeToList(list); |
420 return list; | 420 return list; |
421 } | 421 } |
422 | 422 |
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
692 _queue._checkModification(_modificationCount); | 692 _queue._checkModification(_modificationCount); |
693 if (_position == _end) { | 693 if (_position == _end) { |
694 _current = null; | 694 _current = null; |
695 return false; | 695 return false; |
696 } | 696 } |
697 _current = _queue._table[_position]; | 697 _current = _queue._table[_position]; |
698 _position = (_position + 1) & (_queue._table.length - 1); | 698 _position = (_position + 1) & (_queue._table.length - 1); |
699 return true; | 699 return true; |
700 } | 700 } |
701 } | 701 } |
OLD | NEW |