1e41f4b71Sopenharmony_ci# @ohos.util.Deque (线性容器Deque)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciDeque(double ended queue)根据循环队列的数据结构实现,符合先进先出以及先进后出的特点,支持两端的元素插入和移除。Deque会根据实际需要动态调整容量,每次进行两倍扩容。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ciDeque和[Queue](js-apis-queue.md)相比,Queue的特点是先进先出,只能在头部删除元素,尾部增加元素。
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci与[Vector](js-apis-vector.md)相比,它们都支持在两端增删元素,但Deque不能进行中间插入的操作。对头部元素的插入删除效率高于Vector,而Vector访问元素的效率高于Deque。
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci**推荐使用场景:** 需要频繁在集合两端进行增删元素的操作时,推荐使用Deque。
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci文档中存在泛型的使用,涉及以下泛型标记符:<br>
12e41f4b71Sopenharmony_ci- T:Type,类
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci> **说明:**
15e41f4b71Sopenharmony_ci>
16e41f4b71Sopenharmony_ci> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci## 导入模块
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci```ts
22e41f4b71Sopenharmony_ciimport { Deque } from '@kit.ArkTS';
23e41f4b71Sopenharmony_ci```
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci## Deque
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci### 属性
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 |
34e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | -------- |
35e41f4b71Sopenharmony_ci| length | number | 是 | 否 | Deque的元素个数。 |
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci### constructor
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ciconstructor()
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ciDeque的构造函数。
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci**错误码:**
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
52e41f4b71Sopenharmony_ci| -------- | -------- |
53e41f4b71Sopenharmony_ci| 10200012 | The Deque's constructor cannot be directly invoked. |
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ci**示例:**
56e41f4b71Sopenharmony_ci
57e41f4b71Sopenharmony_ci```ts
58e41f4b71Sopenharmony_cilet deque: Deque<string | number | boolean | Object> = new Deque();
59e41f4b71Sopenharmony_ci```
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ci### insertFront
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ciinsertFront(element: T): void
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ci在deque头部插入元素。
66e41f4b71Sopenharmony_ci
67e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
70e41f4b71Sopenharmony_ci
71e41f4b71Sopenharmony_ci**参数:**
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 |
74e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
75e41f4b71Sopenharmony_ci| element | T | 是 | 插入的元素。 |
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ci**错误码:**
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
82e41f4b71Sopenharmony_ci| -------- | -------- |
83e41f4b71Sopenharmony_ci| 10200011 | The insertFront method cannot be bound. |
84e41f4b71Sopenharmony_ci
85e41f4b71Sopenharmony_ci**示例:**
86e41f4b71Sopenharmony_ci
87e41f4b71Sopenharmony_ci```ts
88e41f4b71Sopenharmony_ciclass C1 {
89e41f4b71Sopenharmony_ci  name: string = ""
90e41f4b71Sopenharmony_ci  age: string = ""
91e41f4b71Sopenharmony_ci}
92e41f4b71Sopenharmony_cilet deque: Deque<string | number | boolean | Array<number> | C1> = new Deque();
93e41f4b71Sopenharmony_cideque.insertFront("a");
94e41f4b71Sopenharmony_cideque.insertFront(1);
95e41f4b71Sopenharmony_cilet b = [1, 2, 3];
96e41f4b71Sopenharmony_cideque.insertFront(b);
97e41f4b71Sopenharmony_cilet c: C1 = {name : "Dylan", age : "13"};
98e41f4b71Sopenharmony_cideque.insertFront(c);
99e41f4b71Sopenharmony_cideque.insertFront(false);
100e41f4b71Sopenharmony_ci```
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_ci### insertEnd
103e41f4b71Sopenharmony_ci
104e41f4b71Sopenharmony_ciinsertEnd(element: T): void
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ci在deque尾部插入元素。
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
109e41f4b71Sopenharmony_ci
110e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci**参数:**
113e41f4b71Sopenharmony_ci
114e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 |
115e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
116e41f4b71Sopenharmony_ci| element | T | 是 | 插入的元素。 |
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_ci**错误码:**
119e41f4b71Sopenharmony_ci
120e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。
121e41f4b71Sopenharmony_ci
122e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
123e41f4b71Sopenharmony_ci| -------- | -------- |
124e41f4b71Sopenharmony_ci| 10200011 | The insertEnd method cannot be bound. |
125e41f4b71Sopenharmony_ci
126e41f4b71Sopenharmony_ci**示例:**
127e41f4b71Sopenharmony_ci
128e41f4b71Sopenharmony_ci```ts
129e41f4b71Sopenharmony_ciclass C1 {
130e41f4b71Sopenharmony_ci  name: string = ""
131e41f4b71Sopenharmony_ci  age: string = ""
132e41f4b71Sopenharmony_ci}
133e41f4b71Sopenharmony_ci
134e41f4b71Sopenharmony_cilet deque: Deque<string | number | boolean | Array<number> | C1> = new Deque();
135e41f4b71Sopenharmony_cideque.insertEnd("a");
136e41f4b71Sopenharmony_cideque.insertEnd(1);
137e41f4b71Sopenharmony_cilet b = [1, 2, 3];
138e41f4b71Sopenharmony_cideque.insertEnd(b);
139e41f4b71Sopenharmony_cilet c: C1 = {name : "Dylan", age : "13"};
140e41f4b71Sopenharmony_cideque.insertEnd(c);
141e41f4b71Sopenharmony_cideque.insertEnd(false);
142e41f4b71Sopenharmony_ci```
143e41f4b71Sopenharmony_ci
144e41f4b71Sopenharmony_ci### has
145e41f4b71Sopenharmony_ci
146e41f4b71Sopenharmony_cihas(element: T): boolean
147e41f4b71Sopenharmony_ci
148e41f4b71Sopenharmony_ci判断此Deque中是否含有该指定元素。
149e41f4b71Sopenharmony_ci
150e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
151e41f4b71Sopenharmony_ci
152e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
153e41f4b71Sopenharmony_ci
154e41f4b71Sopenharmony_ci**参数:**
155e41f4b71Sopenharmony_ci
156e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 |
157e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
158e41f4b71Sopenharmony_ci| element | T | 是 | 指定的元素。 |
159e41f4b71Sopenharmony_ci
160e41f4b71Sopenharmony_ci**返回值:**
161e41f4b71Sopenharmony_ci
162e41f4b71Sopenharmony_ci| 类型 | 说明 |
163e41f4b71Sopenharmony_ci| -------- | -------- |
164e41f4b71Sopenharmony_ci| boolean | 如果包含指定元素返回true,否则返回false。 |
165e41f4b71Sopenharmony_ci
166e41f4b71Sopenharmony_ci**错误码:**
167e41f4b71Sopenharmony_ci
168e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。
169e41f4b71Sopenharmony_ci
170e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
171e41f4b71Sopenharmony_ci| -------- | -------- |
172e41f4b71Sopenharmony_ci| 10200011 | The has method cannot be bound. |
173e41f4b71Sopenharmony_ci
174e41f4b71Sopenharmony_ci**示例:**
175e41f4b71Sopenharmony_ci
176e41f4b71Sopenharmony_ci```ts
177e41f4b71Sopenharmony_cilet deque: Deque<string> = new Deque();
178e41f4b71Sopenharmony_cideque.insertFront("squirrel");
179e41f4b71Sopenharmony_cilet result = deque.has("squirrel");
180e41f4b71Sopenharmony_ci```
181e41f4b71Sopenharmony_ci
182e41f4b71Sopenharmony_ci### popFirst
183e41f4b71Sopenharmony_ci
184e41f4b71Sopenharmony_cipopFirst(): T
185e41f4b71Sopenharmony_ci
186e41f4b71Sopenharmony_ci删除并返回双端队列的首元素。
187e41f4b71Sopenharmony_ci
188e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
189e41f4b71Sopenharmony_ci
190e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
191e41f4b71Sopenharmony_ci
192e41f4b71Sopenharmony_ci**返回值:**
193e41f4b71Sopenharmony_ci
194e41f4b71Sopenharmony_ci| 类型 | 说明 |
195e41f4b71Sopenharmony_ci| -------- | -------- |
196e41f4b71Sopenharmony_ci| T | 返回被删除的首元素。 |
197e41f4b71Sopenharmony_ci
198e41f4b71Sopenharmony_ci**错误码:**
199e41f4b71Sopenharmony_ci
200e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。
201e41f4b71Sopenharmony_ci
202e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
203e41f4b71Sopenharmony_ci| -------- | -------- |
204e41f4b71Sopenharmony_ci| 10200011 | The popFirst method cannot be bound. |
205e41f4b71Sopenharmony_ci
206e41f4b71Sopenharmony_ci**示例:**
207e41f4b71Sopenharmony_ci
208e41f4b71Sopenharmony_ci```ts
209e41f4b71Sopenharmony_cilet deque: Deque<number> = new Deque();
210e41f4b71Sopenharmony_cideque.insertFront(2);
211e41f4b71Sopenharmony_cideque.insertFront(4);
212e41f4b71Sopenharmony_cideque.insertEnd(5);
213e41f4b71Sopenharmony_cideque.insertFront(2);
214e41f4b71Sopenharmony_cideque.insertFront(4);
215e41f4b71Sopenharmony_cilet result = deque.popFirst();
216e41f4b71Sopenharmony_ci```
217e41f4b71Sopenharmony_ci
218e41f4b71Sopenharmony_ci### popLast
219e41f4b71Sopenharmony_ci
220e41f4b71Sopenharmony_cipopLast(): T
221e41f4b71Sopenharmony_ci
222e41f4b71Sopenharmony_ci删除并返回双端队列的尾元素。
223e41f4b71Sopenharmony_ci
224e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
225e41f4b71Sopenharmony_ci
226e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
227e41f4b71Sopenharmony_ci
228e41f4b71Sopenharmony_ci**返回值:**
229e41f4b71Sopenharmony_ci
230e41f4b71Sopenharmony_ci| 类型 | 说明 |
231e41f4b71Sopenharmony_ci| -------- | -------- |
232e41f4b71Sopenharmony_ci| T | 返回被删除的尾元素。 |
233e41f4b71Sopenharmony_ci
234e41f4b71Sopenharmony_ci**错误码:**
235e41f4b71Sopenharmony_ci
236e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。
237e41f4b71Sopenharmony_ci
238e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
239e41f4b71Sopenharmony_ci| -------- | -------- |
240e41f4b71Sopenharmony_ci| 10200011 | The popLast method cannot be bound. |
241e41f4b71Sopenharmony_ci
242e41f4b71Sopenharmony_ci**示例:**
243e41f4b71Sopenharmony_ci
244e41f4b71Sopenharmony_ci```ts
245e41f4b71Sopenharmony_cilet deque: Deque<number> = new Deque();
246e41f4b71Sopenharmony_cideque.insertFront(2);
247e41f4b71Sopenharmony_cideque.insertEnd(4);
248e41f4b71Sopenharmony_cideque.insertFront(5);
249e41f4b71Sopenharmony_cideque.insertFront(2);
250e41f4b71Sopenharmony_cideque.insertFront(4);
251e41f4b71Sopenharmony_cilet result = deque.popLast();
252e41f4b71Sopenharmony_ci```
253e41f4b71Sopenharmony_ci
254e41f4b71Sopenharmony_ci### forEach
255e41f4b71Sopenharmony_ci
256e41f4b71Sopenharmony_ciforEach(callbackFn: (value: T, index?: number, deque?: Deque&lt;T&gt;) => void,
257e41f4b71Sopenharmony_cithisArg?: Object): void
258e41f4b71Sopenharmony_ci
259e41f4b71Sopenharmony_ci通过回调函数来遍历Deque实例对象上的元素以及元素对应的下标。
260e41f4b71Sopenharmony_ci
261e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
262e41f4b71Sopenharmony_ci
263e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
264e41f4b71Sopenharmony_ci
265e41f4b71Sopenharmony_ci**参数:**
266e41f4b71Sopenharmony_ci
267e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 |
268e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
269e41f4b71Sopenharmony_ci| callbackFn | function | 是 | 回调函数。 |
270e41f4b71Sopenharmony_ci| thisArg | Object | 否 | callbackfn被调用时用作this值,默认值为当前实例对象。 |
271e41f4b71Sopenharmony_ci
272e41f4b71Sopenharmony_cicallbackfn的参数说明:
273e41f4b71Sopenharmony_ci
274e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 |
275e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
276e41f4b71Sopenharmony_ci| value | T | 是 | 当前遍历到的元素。 |
277e41f4b71Sopenharmony_ci| index | number | 否 | 当前遍历到的下标值,默认值为0。 |
278e41f4b71Sopenharmony_ci| deque | Deque&lt;T&gt; | 否 | 当前调用forEach方法的实例对象,默认值为当前实例对象。 |
279e41f4b71Sopenharmony_ci
280e41f4b71Sopenharmony_ci**错误码:**
281e41f4b71Sopenharmony_ci
282e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
283e41f4b71Sopenharmony_ci
284e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
285e41f4b71Sopenharmony_ci| -------- | -------- |
286e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
287e41f4b71Sopenharmony_ci| 10200011 | The forEach method cannot be bound. |
288e41f4b71Sopenharmony_ci
289e41f4b71Sopenharmony_ci**示例:**
290e41f4b71Sopenharmony_ci
291e41f4b71Sopenharmony_ci```ts
292e41f4b71Sopenharmony_cilet deque: Deque<number> = new Deque();
293e41f4b71Sopenharmony_cideque.insertFront(2);
294e41f4b71Sopenharmony_cideque.insertEnd(4);
295e41f4b71Sopenharmony_cideque.insertFront(5);
296e41f4b71Sopenharmony_cideque.insertEnd(4);
297e41f4b71Sopenharmony_cideque.forEach((value: number, index?: number | undefined, deque?: Deque<number> | undefined):void => {
298e41f4b71Sopenharmony_ci  console.log("value:" + value, "index:" + index);
299e41f4b71Sopenharmony_ci});
300e41f4b71Sopenharmony_ci```
301e41f4b71Sopenharmony_ci
302e41f4b71Sopenharmony_ci### getFirst
303e41f4b71Sopenharmony_ci
304e41f4b71Sopenharmony_cigetFirst(): T
305e41f4b71Sopenharmony_ci
306e41f4b71Sopenharmony_ci获取Deque实例中的头元素。
307e41f4b71Sopenharmony_ci
308e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
309e41f4b71Sopenharmony_ci
310e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
311e41f4b71Sopenharmony_ci
312e41f4b71Sopenharmony_ci**返回值:**
313e41f4b71Sopenharmony_ci
314e41f4b71Sopenharmony_ci| 类型 | 说明 |
315e41f4b71Sopenharmony_ci| -------- | -------- |
316e41f4b71Sopenharmony_ci| T | 返回T类型的头元素 |
317e41f4b71Sopenharmony_ci
318e41f4b71Sopenharmony_ci**错误码:**
319e41f4b71Sopenharmony_ci
320e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。
321e41f4b71Sopenharmony_ci
322e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
323e41f4b71Sopenharmony_ci| -------- | -------- |
324e41f4b71Sopenharmony_ci| 10200011 | The getFirst method cannot be bound. |
325e41f4b71Sopenharmony_ci
326e41f4b71Sopenharmony_ci**示例:**
327e41f4b71Sopenharmony_ci
328e41f4b71Sopenharmony_ci```ts
329e41f4b71Sopenharmony_cilet deque: Deque<number> = new Deque();
330e41f4b71Sopenharmony_cideque.insertEnd(2);
331e41f4b71Sopenharmony_cideque.insertEnd(4);
332e41f4b71Sopenharmony_cideque.insertFront(5);
333e41f4b71Sopenharmony_cideque.insertFront(4);
334e41f4b71Sopenharmony_cilet result = deque.getFirst();
335e41f4b71Sopenharmony_ci```
336e41f4b71Sopenharmony_ci
337e41f4b71Sopenharmony_ci### getLast
338e41f4b71Sopenharmony_ci
339e41f4b71Sopenharmony_cigetLast(): T
340e41f4b71Sopenharmony_ci
341e41f4b71Sopenharmony_ci获取Deque实例中的尾元素。
342e41f4b71Sopenharmony_ci
343e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
344e41f4b71Sopenharmony_ci
345e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
346e41f4b71Sopenharmony_ci
347e41f4b71Sopenharmony_ci**返回值:**
348e41f4b71Sopenharmony_ci
349e41f4b71Sopenharmony_ci| 类型 | 说明 |
350e41f4b71Sopenharmony_ci| -------- | -------- |
351e41f4b71Sopenharmony_ci| T | 返回T类型的尾元素 |
352e41f4b71Sopenharmony_ci
353e41f4b71Sopenharmony_ci**错误码:**
354e41f4b71Sopenharmony_ci
355e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。
356e41f4b71Sopenharmony_ci
357e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
358e41f4b71Sopenharmony_ci| -------- | -------- |
359e41f4b71Sopenharmony_ci| 10200011 | The getLast method cannot be bound. |
360e41f4b71Sopenharmony_ci
361e41f4b71Sopenharmony_ci**示例:**
362e41f4b71Sopenharmony_ci
363e41f4b71Sopenharmony_ci```ts
364e41f4b71Sopenharmony_cilet deque: Deque<number> = new Deque();
365e41f4b71Sopenharmony_cideque.insertFront(2);
366e41f4b71Sopenharmony_cideque.insertFront(4);
367e41f4b71Sopenharmony_cideque.insertFront(5);
368e41f4b71Sopenharmony_cideque.insertFront(4);
369e41f4b71Sopenharmony_cilet result = deque.getLast();
370e41f4b71Sopenharmony_ci```
371e41f4b71Sopenharmony_ci
372e41f4b71Sopenharmony_ci### [Symbol.iterator]
373e41f4b71Sopenharmony_ci
374e41f4b71Sopenharmony_ci[Symbol.iterator]\(): IterableIterator&lt;T&gt;
375e41f4b71Sopenharmony_ci
376e41f4b71Sopenharmony_ci返回一个迭代器,迭代器的每一项都是一个 JavaScript 对象,并返回该对象。
377e41f4b71Sopenharmony_ci
378e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
379e41f4b71Sopenharmony_ci
380e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang
381e41f4b71Sopenharmony_ci
382e41f4b71Sopenharmony_ci**返回值:**
383e41f4b71Sopenharmony_ci
384e41f4b71Sopenharmony_ci| 类型 | 说明 |
385e41f4b71Sopenharmony_ci| -------- | -------- |
386e41f4b71Sopenharmony_ci| IterableIterator&lt;T&gt; | 返回一个迭代器。 |
387e41f4b71Sopenharmony_ci
388e41f4b71Sopenharmony_ci**错误码:**
389e41f4b71Sopenharmony_ci
390e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。
391e41f4b71Sopenharmony_ci
392e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
393e41f4b71Sopenharmony_ci| -------- | -------- |
394e41f4b71Sopenharmony_ci| 10200011 | The Symbol.iterator method cannot be bound. |
395e41f4b71Sopenharmony_ci
396e41f4b71Sopenharmony_ci**示例:**
397e41f4b71Sopenharmony_ci```ts
398e41f4b71Sopenharmony_cilet deque: Deque<number> = new Deque();
399e41f4b71Sopenharmony_cideque.insertFront(2);
400e41f4b71Sopenharmony_cideque.insertFront(4);
401e41f4b71Sopenharmony_cideque.insertFront(5);
402e41f4b71Sopenharmony_cideque.insertFront(4);
403e41f4b71Sopenharmony_ci
404e41f4b71Sopenharmony_ci// 使用方法一:
405e41f4b71Sopenharmony_cilet nums: Array<number> = Array.from(deque)
406e41f4b71Sopenharmony_cifor (let item of nums) {
407e41f4b71Sopenharmony_ci  console.log("value:" + item);
408e41f4b71Sopenharmony_ci}
409e41f4b71Sopenharmony_ci
410e41f4b71Sopenharmony_ci// 使用方法二:
411e41f4b71Sopenharmony_cilet iter = deque[Symbol.iterator]();
412e41f4b71Sopenharmony_cilet temp:IteratorResult<number> = iter.next();
413e41f4b71Sopenharmony_ciwhile(!temp.done) {
414e41f4b71Sopenharmony_ci  console.log("value:" + temp.value);
415e41f4b71Sopenharmony_ci  temp = iter.next();
416e41f4b71Sopenharmony_ci}
417e41f4b71Sopenharmony_ci```