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<T>) => 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<T> | 否 | 当前调用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<T> 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<T> | 返回一个迭代器。 | 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```