Linear Container Deque

icon-note.gif NOTE The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.

Modules to Import

import Deque from '@ohos.util.Deque'; 

System Capabilities

SystemCapability.Utils.Lang

Deque

Attributes

Name Type Readable Writable Description
length number Yes No Number of entries in a double-ended queue (deque, called container later).

constructor

constructor()

A constructor used to create a Deque instance.

Example

let deque = new Deque();

insertFront

insertFront(element: T): void

Inserts an entry at the front of this container.

Parameters

Name Type Mandatory Description
element T Yes Entry to insert.

Example

let deque = new Deque();
deque.insertFront("a");
deque.insertFront(1);
let b = [1, 2, 3];
deque.insertFront(b);
let c = {name : "lala", age : "13"};
deque.insertFront(false);

insertEnd

insertEnd(element: T): void

Inserts an entry at the end of this container.

Parameters

Name Type Mandatory Description
element T Yes Entry to insert.

Example

let deque = new Deque();
deque.insertEnd("a");
deque.insertEnd(1);
let b = [1, 2, 3];
deque.insertEnd(b);
let c = {name : "lala", age : "13"};
deque.insertEnd(false);

has

has(element: T): boolean

Checks whether this container has the specified entry.

Parameters

Name Type Mandatory Description
element T Yes Entry to check.

Return value

Type Description
boolean Returns true if the specified entry is contained; returns false otherwise.

Example

let deque = new Deque();
let result = deque.has("Ahfbrgrbgnutfodgorrogorg");
deque.insertFront("Ahfbrgrbgnutfodgorrogorg");
let result1 = deque.has("Ahfbrgrbgnutfodgorrogorg");

popFirst

popFirst(): T

Removes the first entry of this container.

Return value

Type Description
T Entry removed.

Example

let deque = new Deque();
deque.insertFront(2);
deque.insertFront(4);
deque.insertEnd(5);
deque.insertFront(2);
deque.insertFront(4);
let result = deque.popFirst();

popLast

popLast(): T

Removes the last entry of this container.

Return value

Type Description
T Entry removed.

Example

let deque = new Deque();
deque.insertFront(2);
deque.insertEnd(4);
deque.insertFront(5);
deque.insertFront(2);
deque.insertFront(4);
let result = deque.popLast();

forEach

forEach(callbackfn: (value: T, index?: number, deque?: Deque<T>) => void, thisArg?: Object): void

Uses a callback to traverse the entries in this container and obtain their position indexes.

Parameters

Name Type Mandatory Description
callbackfn function Yes Callback invoked to traverse the entries in the container.
thisArg Object No Value to use when the callback is invoked.

callbackfn

Name Type Mandatory Description
value T Yes Value of the element that is currently traversed.
index number No Position index of the entry that is currently traversed.
deque Deque<T> No Instance that invokes the forEach method.

Example

let deque = new Deque();
deque.insertFront(2);
deque.insertEnd(4);
deque.insertFront(5);
deque.insertEnd(4);
deque.forEach((value, index) => {
  console.log("value:" + value, index);
});

getFirst

getFirst(): T

Obtains the first entry of this container.

Return value

Type Description
T Entry obtained.

Example

let deque = new Deque();
deque.insertEnd(2);
deque.insertEnd(4);
deque.insertFront(5);
deque.insertFront(4);
let result = deque.getFirst();

getLast

getLast(): T

Obtains the last entry of this container.

Return value

Type Description
T Entry obtained.

Example

let deque = new Deque();
deque.insertFront(2);
deque.insertFront(4);
deque.insertFront(5);
deque.insertFront(4);
let result = deque.getLast();

[Symbol.iterator]

[Symbol.iterator](): IterableIterator<T>

Obtains an iterator, each item of which is a JavaScript object.

Return value

Type Description
IterableIterator<T> Iterator obtained.

Example

let deque = new Deque();
deque.insertFront(2);
deque.insertFront(4);
deque.insertFront(5);
deque.insertFront(4);

// Method 1:
for (let item of deque) { 
  console.log("value:" + item); 
}

// Method 2:
let iter = deque[Symbol.iterator]();
let temp = iter.next().value;
while(temp != undefined) {
  console.log("value:" + temp);
  temp = iter.next().value;
}