1# @ohos.util.ArrayList (线性容器ArrayList) 2 3ArrayList是一种线性数据结构,底层基于数组实现。ArrayList会根据实际需要动态调整容量,每次扩容增加50%。 4 5ArrayList和[Vector](js-apis-vector.md)相似,都是基于数组实现。它们都可以动态调整容量,但Vector每次扩容增加1倍。 6 7ArrayList和[LinkedList](js-apis-linkedlist.md)相比,ArrayList的随机访问效率更高。但由于ArrayList的增删操作会影响数组内其他元素的移动,LinkedList的增加和删除操作效率更高。 8 9**推荐使用场景:** 当需要频繁读取集合中的元素时,推荐使用ArrayList。 10 11文档中存在泛型的使用,涉及以下泛型标记符:<br> 12- T:Type,类 13 14> **说明:** 15> 16> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 17 18 19## 导入模块 20 21```ts 22import { ArrayList } from '@kit.ArkTS'; 23``` 24 25## ArrayList 26 27### 属性 28 29**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 30 31**系统能力:** SystemCapability.Utils.Lang 32 33| 名称 | 类型 | 可读 | 可写 | 说明 | 34| -------- | -------- | -------- | -------- | -------- | 35| length | number | 是 | 否 | ArrayList的元素个数。 | 36 37 38### constructor 39 40constructor() 41 42ArrayList的构造函数。 43 44**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 45 46**系统能力:** SystemCapability.Utils.Lang 47 48**错误码:** 49 50以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。 51 52| 错误码ID | 错误信息 | 53| -------- | -------- | 54| 10200012 | The ArrayList's constructor cannot be directly invoked. | 55 56**示例:** 57 58```ts 59let arrayList: ArrayList<string | number> = new ArrayList(); 60``` 61 62 63### add 64 65add(element: T): boolean 66 67在ArrayList尾部插入元素。 68 69**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 70 71**系统能力:** SystemCapability.Utils.Lang 72 73**参数:** 74 75| 参数名 | 类型 | 必填 | 说明 | 76| -------- | -------- | -------- | -------- | 77| element | T | 是 | 待插入的元素。 | 78 79**返回值:** 80 81| 类型 | 说明 | 82| -------- | -------- | 83| boolean | 插入成功返回true,失败返回false。 | 84 85**错误码:** 86 87以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。 88 89| 错误码ID | 错误信息 | 90| -------- | -------- | 91| 10200011 | The add method cannot be bound. | 92 93**示例:** 94 95```ts 96class C1 { 97 name: string = "" 98 age: string = "" 99} 100let arrayList: ArrayList<string | number | boolean | Array<number> | C1> = new ArrayList(); 101let result1 = arrayList.add("a"); 102let result2 = arrayList.add(1); 103let b = [1, 2, 3]; 104let result3 = arrayList.add(b); 105let c : C1 = {name: "Dylan", age: "13"} 106let result4 = arrayList.add(c); 107let result5 = arrayList.add(false); 108``` 109 110### insert 111 112insert(element: T, index: number): void 113 114在长度范围内任意位置插入指定元素。 115 116**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 117 118**系统能力:** SystemCapability.Utils.Lang 119 120**参数:** 121 122| 参数名 | 类型 | 必填 | 说明 | 123| -------- | -------- | -------- | -------- | 124| element | T | 是 | 被插入的元素。 | 125| index | number | 是 | 被插入的位置索引。需要小于等于int32_max即2147483647。 | 126 127**错误码:** 128 129以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。 130 131| 错误码ID | 错误信息 | 132| -------- | -------- | 133| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 134| 10200001 | The value of index is out of range. | 135| 10200011 | The insert method cannot be bound. | 136 137**示例:** 138 139```ts 140let arrayList: ArrayList<number | string | boolean> = new ArrayList(); 141arrayList.insert("A", 0); 142arrayList.insert(0, 1); 143arrayList.insert(true, 2); 144``` 145 146### has 147 148has(element: T): boolean 149 150判断此ArrayList中是否含有该指定元素。 151 152**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 153 154**系统能力:** SystemCapability.Utils.Lang 155 156**参数:** 157 158| 参数名 | 类型 | 必填 | 说明 | 159| -------- | -------- | -------- | -------- | 160| element | T | 是 | 指定元素。 | 161 162**返回值:** 163 164| 类型 | 说明 | 165| -------- | -------- | 166| boolean | 返回true表示包含指定元素,否则返回false。 | 167 168**错误码:** 169 170以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。 171 172| 错误码ID | 错误信息 | 173| -------- | -------- | 174| 10200011 | The has method cannot be bound. | 175 176**示例:** 177 178```ts 179let arrayList: ArrayList<string> = new ArrayList(); 180arrayList.add("squirrel"); 181let result: boolean = arrayList.has("squirrel"); 182``` 183 184### getIndexOf 185 186getIndexOf(element: T): number 187 188返回指定元素第一次出现时的下标值,查找失败返回-1。 189 190**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 191 192**系统能力:** SystemCapability.Utils.Lang 193 194**参数:** 195 196| 参数名 | 类型 | 必填 | 说明 | 197| -------- | -------- | -------- | -------- | 198| element | T | 是 | 指定元素。 | 199 200**返回值:** 201 202| 类型 | 说明 | 203| -------- | -------- | 204| number | 返回指定元素第一次出现时的下标值,查找失败返回-1。 | 205 206**错误码:** 207 208以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。 209 210| 错误码ID | 错误信息 | 211| -------- | -------- | 212| 10200011 | The getIndexOf method cannot be bound. | 213 214**示例:** 215 216```ts 217let arrayList: ArrayList<number> = new ArrayList(); 218arrayList.add(2); 219arrayList.add(4); 220arrayList.add(5); 221arrayList.add(2); 222arrayList.add(1); 223arrayList.add(2); 224arrayList.add(4); 225let result: number = arrayList.getIndexOf(2); 226``` 227 228### getLastIndexOf 229 230getLastIndexOf(element: T): number 231 232返回指定元素最后一次出现时的下标值,查找失败返回-1。 233 234**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 235 236**系统能力:** SystemCapability.Utils.Lang 237 238**参数:** 239 240| 参数名 | 类型 | 必填 | 说明 | 241| -------- | -------- | -------- | -------- | 242| element | T | 是 | 指定元素。 | 243 244**返回值:** 245 246| 类型 | 说明 | 247| -------- | -------- | 248| number | 返回指定元素最后一次出现时的下标值,查找失败返回-1。 | 249 250**错误码:** 251 252以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。 253 254| 错误码ID | 错误信息 | 255| -------- | -------- | 256| 10200011 | The getLastIndexOf method cannot be bound. | 257 258**示例:** 259 260```ts 261let arrayList: ArrayList<number> = new ArrayList(); 262arrayList.add(2); 263arrayList.add(4); 264arrayList.add(5); 265arrayList.add(2); 266arrayList.add(1); 267arrayList.add(2); 268arrayList.add(4); 269let result: number = arrayList.getLastIndexOf(2); 270``` 271 272### removeByIndex 273 274removeByIndex(index: number): T 275 276根据元素的下标值查找元素,返回元素后将其删除。 277 278**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 279 280**系统能力:** SystemCapability.Utils.Lang 281 282**参数:** 283 284| 参数名 | 类型 | 必填 | 说明 | 285| -------- | -------- | -------- | -------- | 286| index | number | 是 | 指定元素的下标值。需要小于等于int32_max即2147483647。 | 287 288**返回值:** 289 290| 类型 | 说明 | 291| -------- | -------- | 292| T | 返回删除的元素。 | 293 294**错误码:** 295 296以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。 297 298| 错误码ID | 错误信息 | 299| -------- | -------- | 300| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 301| 10200001 | The value of index is out of range. | 302| 10200011 | The removeByIndex method cannot be bound. | 303 304**示例:** 305 306```ts 307let arrayList: ArrayList<number> = new ArrayList(); 308arrayList.add(2); 309arrayList.add(4); 310arrayList.add(5); 311arrayList.add(2); 312arrayList.add(4); 313let result: number = arrayList.removeByIndex(2); 314``` 315 316### remove 317 318remove(element: T): boolean 319 320删除查找到的第一个指定的元素。 321 322**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 323 324**系统能力:** SystemCapability.Utils.Lang 325 326**参数:** 327 328| 参数名 | 类型 | 必填 | 说明 | 329| -------- | -------- | -------- | -------- | 330| element | T | 是 | 指定元素。 | 331 332**返回值:** 333 334| 类型 | 说明 | 335| -------- | -------- | 336| boolean | 删除成功返回true,失败返回false。 | 337 338**错误码:** 339 340以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。 341 342| 错误码ID | 错误信息 | 343| -------- | -------- | 344| 10200011 | The remove method cannot be bound. | 345 346**示例:** 347 348```ts 349let arrayList: ArrayList<number> = new ArrayList(); 350arrayList.add(2); 351arrayList.add(4); 352arrayList.add(5); 353arrayList.add(4); 354let result: boolean = arrayList.remove(2); 355``` 356 357### removeByRange 358 359removeByRange(fromIndex: number, toIndex: number): void 360 361从一段范围内删除元素,包括起始值但不包括终止值。 362 363**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 364 365**系统能力:** SystemCapability.Utils.Lang 366 367**参数:** 368 369| 参数名 | 类型 | 必填 | 说明 | 370| -------- | -------- | -------- | -------- | 371| fromIndex | number | 是 | 起始下标。 | 372| toIndex | number | 是 | 终止下标。 | 373 374**错误码:** 375 376以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。 377 378| 错误码ID | 错误信息 | 379| -------- | -------- | 380| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 381| 10200001 | The value of fromIndex or toIndex is out of range. | 382| 10200011 | The removeByRange method cannot be bound. | 383 384**示例:** 385 386```ts 387let arrayList: ArrayList<number> = new ArrayList(); 388arrayList.add(2); 389arrayList.add(4); 390arrayList.add(5); 391arrayList.add(4); 392arrayList.removeByRange(2, 4); 393``` 394 395### replaceAllElements 396 397replaceAllElements(callbackFn: (value: T, index?: number, arrlist?: ArrayList<T>) => T, 398thisArg?: Object): void 399 400用户操作ArrayList中的元素,用操作后的元素替换原元素并返回操作后的元素。 401 402**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 403 404**系统能力:** SystemCapability.Utils.Lang 405 406**参数:** 407 408| 参数名 | 类型 | 必填 | 说明 | 409| -------- | -------- | -------- | -------- | 410| callbackFn | function | 是 | 回调函数。 | 411| thisArg | Object | 否 | callbackfn被调用时用作this值,默认值为当前实例对象。 | 412 413callbackfn的参数说明: 414 415| 参数名 | 类型 | 必填 | 说明 | 416| -------- | -------- | -------- | -------- | 417| value | T | 是 | 当前遍历到的元素。 | 418| index | number | 否 | 当前遍历到的下标值,默认值为0。 | 419| arrlist | ArrayList<T> | 否 | 当前调用replaceAllElements方法的实例对象,默认值为当前实例对象。 | 420 421**错误码:** 422 423以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。 424 425| 错误码ID | 错误信息 | 426| -------- | -------- | 427| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 428| 10200011 | The replaceAllElements method cannot be bound. | 429 430**示例:** 431 432```ts 433let arrayList: ArrayList<number> = new ArrayList(); 434arrayList.add(2); 435arrayList.add(4); 436arrayList.add(5); 437arrayList.add(4); 438arrayList.replaceAllElements((value: number): number => { 439 // 用户操作逻辑根据实际场景进行添加。 440 return value; 441}); 442``` 443 444### forEach 445 446forEach(callbackFn: (value: T, index?: number, arrlist?: ArrayList<T>) => void, 447thisArg?: Object): void 448 449通过回调函数来遍历ArrayList实例对象上的元素以及元素对应的下标。 450 451**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 452 453**系统能力:** SystemCapability.Utils.Lang 454 455**参数:** 456 457| 参数名 | 类型 | 必填 | 说明 | 458| -------- | -------- | -------- | -------- | 459| callbackFn | function | 是 | 回调函数。 | 460| thisArg | Object | 否 | callbackfn被调用时用作this值,默认值为当前实例对象。 | 461 462callbackfn的参数说明: 463 464| 参数名 | 类型 | 必填 | 说明 | 465| -------- | -------- | -------- | -------- | 466| value | T | 是 | 当前遍历到的元素。 | 467| index | number | 否 | 当前遍历到的下标值,默认值为0。 | 468| arrlist | ArrayList<T> | 否 | 当前调用forEach方法的实例对象,默认值为当前实例对象。 | 469 470**错误码:** 471 472以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。 473 474| 错误码ID | 错误信息 | 475| -------- | -------- | 476| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 477| 10200011 | The forEach method cannot be bound. | 478 479**示例:** 480 481```ts 482let arrayList: ArrayList<number> = new ArrayList(); 483arrayList.add(2); 484arrayList.add(4); 485arrayList.add(5); 486arrayList.add(4); 487arrayList.forEach((value: number, index?: number) => { 488 console.log("value:" + value, "index:" + index); 489}); 490``` 491 492### sort 493 494sort(comparator?: (firstValue: T, secondValue: T) => number): void 495 496对ArrayList中的元素排序。 497 498**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 499 500**系统能力:** SystemCapability.Utils.Lang 501 502**参数:** 503 504| 参数名 | 类型 | 必填 | 说明 | 505| -------- | -------- | -------- | -------- | 506| comparator | function | 否 | 回调函数,默认为升序排序的回调函数。 | 507 508comparator的参数说明: 509 510| 参数名 | 类型 | 必填 | 说明 | 511| -------- | -------- | -------- | -------- | 512| firstValue | T | 是 | 前一项元素。 | 513| secondValue | T | 是 | 后一项元素。 | 514 515**错误码:** 516 517以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。 518 519| 错误码ID | 错误信息 | 520| -------- | -------- | 521| 401 | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed. | 522| 10200011 | The sort method cannot be bound. | 523 524**示例:** 525 526```ts 527let arrayList: ArrayList<number> = new ArrayList(); 528arrayList.add(2); 529arrayList.add(4); 530arrayList.add(5); 531arrayList.add(4); 532arrayList.sort((a: number, b: number) => a - b); 533arrayList.sort((a: number, b: number) => b - a); 534arrayList.sort(); 535``` 536 537### subArrayList 538 539subArrayList(fromIndex: number, toIndex: number): ArrayList<T> 540 541根据下标截取ArrayList中的一段元素,并返回这一段ArrayList实例,包括起始值但不包括终止值。 542 543**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 544 545**系统能力:** SystemCapability.Utils.Lang 546 547**参数:** 548 549| 参数名 | 类型 | 必填 | 说明 | 550| -------- | -------- | -------- | -------- | 551| fromIndex | number | 是 | 起始下标。 | 552| toIndex | number | 是 | 终止下标。 | 553 554**返回值:** 555 556| 类型 | 说明 | 557| -------- | -------- | 558| ArrayList<T> | 返回ArrayList对象实例。 | 559 560**错误码:** 561 562以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。 563 564| 错误码ID | 错误信息 | 565| -------- | -------- | 566| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 567| 10200001 | The value of fromIndex or toIndex is out of range. | 568| 10200011 | The subArrayList method cannot be bound. | 569 570**示例:** 571 572```ts 573let arrayList: ArrayList<number> = new ArrayList(); 574arrayList.add(2); 575arrayList.add(4); 576arrayList.add(5); 577arrayList.add(4); 578let result: ArrayList<number> = arrayList.subArrayList(2, 4); 579``` 580 581### clear 582 583clear(): void 584 585清除ArrayList中的所有元素,并把length置为0。 586 587**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 588 589**系统能力:** SystemCapability.Utils.Lang 590 591**错误码:** 592 593以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。 594 595| 错误码ID | 错误信息 | 596| -------- | -------- | 597| 10200011 | The clear method cannot be bound. | 598 599**示例:** 600 601```ts 602let arrayList: ArrayList<number> = new ArrayList(); 603arrayList.add(2); 604arrayList.add(4); 605arrayList.add(5); 606arrayList.add(4); 607arrayList.clear(); 608``` 609 610### clone 611 612clone(): ArrayList<T> 613 614克隆一个与ArrayList相同的实例,并返回克隆后的实例。修改克隆后的实例并不会影响原实例。 615 616**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 617 618**系统能力:** SystemCapability.Utils.Lang 619 620 621**返回值:** 622 623| 类型 | 说明 | 624| -------- | -------- | 625| ArrayList<T> | 返回ArrayList对象实例。 | 626 627**错误码:** 628 629以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。 630 631| 错误码ID | 错误信息 | 632| -------- | -------- | 633| 10200011 | The clone method cannot be bound. | 634 635**示例:** 636 637```ts 638let arrayList: ArrayList<number> = new ArrayList(); 639arrayList.add(2); 640arrayList.add(4); 641arrayList.add(5); 642arrayList.add(4); 643let result: ArrayList<number> = arrayList.clone(); 644``` 645 646### getCapacity 647 648getCapacity(): number 649 650获取当前实例的容量大小。 651 652**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 653 654**系统能力:** SystemCapability.Utils.Lang 655 656**返回值:** 657 658| 类型 | 说明 | 659| -------- | -------- | 660| number | 返回arraylist的容量大小。 | 661 662**错误码:** 663 664以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。 665 666| 错误码ID | 错误信息 | 667| -------- | -------- | 668| 10200011 | The getCapacity method cannot be bound. | 669 670**示例:** 671 672```ts 673let arrayList: ArrayList<number> = new ArrayList(); 674arrayList.add(2); 675arrayList.add(4); 676arrayList.add(5); 677arrayList.add(4); 678let result: number = arrayList.getCapacity(); 679``` 680 681### convertToArray 682 683convertToArray(): Array<T> 684 685把当前ArrayList实例转换成数组,并返回转换后的数组。 686 687**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 688 689**系统能力:** SystemCapability.Utils.Lang 690 691**返回值:** 692 693| 类型 | 说明 | 694| -------- | -------- | 695| Array<T> | 返回数组类型。 | 696 697**错误码:** 698 699以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。 700 701| 错误码ID | 错误信息 | 702| -------- | -------- | 703| 10200011 | The convertToArray method cannot be bound. | 704 705**示例:** 706 707```ts 708let arrayList: ArrayList<number> = new ArrayList(); 709arrayList.add(2); 710arrayList.add(4); 711arrayList.add(5); 712arrayList.add(4); 713let result: Array<number> = arrayList.convertToArray(); 714``` 715 716### isEmpty 717 718isEmpty(): boolean 719 720判断该ArrayList是否为空。 721 722**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 723 724**系统能力:** SystemCapability.Utils.Lang 725 726**返回值:** 727 728| 类型 | 说明 | 729| -------- | -------- | 730| boolean | 为空返回true,不为空返回false。 | 731 732**错误码:** 733 734以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。 735 736| 错误码ID | 错误信息 | 737| -------- | -------- | 738| 10200011 | The isEmpty method cannot be bound. | 739 740**示例:** 741 742```ts 743let arrayList: ArrayList<number> = new ArrayList(); 744arrayList.add(2); 745arrayList.add(4); 746arrayList.add(5); 747arrayList.add(4); 748let result: boolean = arrayList.isEmpty(); 749``` 750 751### \[index: number\]<sup>12+</sup> 752 753\[index: number\]: T 754 755取指定索引值对应位置的元素。 756 757**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 758 759**系统能力:** SystemCapability.Utils.Lang 760 761**参数:** 762 763| 参数名 | 类型 | 必填 | 说明 | 764| -------- | -------- | -------- | -------- | 765| index | number | 是 | 元素的位置索引。需要小于等于int32_max即2147483647。 | 766 767**返回值:** 768 769| 类型 | 说明 | 770| -------- | -------- | 771| T | 容器中对应索引值为index的元素。 | 772 773**错误码:** 774 775以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。 776 777| 错误码ID | 错误信息 | 778| -------- | -------- | 779| 401 | Parameter error. | 780| 10200001 | The value of index is out of range. | 781 782**示例:** 783 784```ts 785let arrayList: ArrayList<number> = new ArrayList(); 786arrayList.add(2); 787arrayList.add(4); 788arrayList.add(5); 789arrayList.add(4); 790let result: number = arrayList[2]; 791``` 792 793### increaseCapacityTo 794 795increaseCapacityTo(newCapacity: number): void 796 797如果传入的新容量大于或等于ArrayList中的元素个数,将容量变更为新容量。 798 799**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 800 801**系统能力:** SystemCapability.Utils.Lang 802 803**参数:** 804 805| 参数名 | 类型 | 必填 | 说明 | 806| -------- | -------- | -------- | -------- | 807| newCapacity | number | 是 | 新容量。 | 808 809**错误码:** 810 811以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。 812 813| 错误码ID | 错误信息 | 814| -------- | -------- | 815| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 816| 10200011 | The increaseCapacityTo method cannot be bound. | 817 818**示例:** 819 820```ts 821let arrayList: ArrayList<number> = new ArrayList(); 822arrayList.add(2); 823arrayList.add(4); 824arrayList.add(5); 825arrayList.add(4); 826arrayList.increaseCapacityTo(2); 827arrayList.increaseCapacityTo(8); 828``` 829 830### trimToCurrentLength 831 832trimToCurrentLength(): void 833 834释放ArrayList中预留的空间,把容量调整为当前的元素个数。 835 836**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 837 838**系统能力:** SystemCapability.Utils.Lang 839 840**错误码:** 841 842以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。 843 844| 错误码ID | 错误信息 | 845| -------- | -------- | 846| 10200011 | The trimToCurrentLength method cannot be bound. | 847 848**示例:** 849 850```ts 851let arrayList: ArrayList<number> = new ArrayList(); 852arrayList.add(2); 853arrayList.add(4); 854arrayList.add(5); 855arrayList.add(4); 856arrayList.trimToCurrentLength(); 857``` 858 859### [Symbol.iterator] 860 861[Symbol.iterator]\(): IterableIterator<T> 862 863返回一个迭代器,迭代器的每一项都是一个 JavaScript 对象,并返回该对象。 864 865**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 866 867**系统能力:** SystemCapability.Utils.Lang 868 869**返回值:** 870 871| 类型 | 说明 | 872| -------- | -------- | 873| IterableIterator<T> | 返回一个迭代器。 | 874 875**错误码:** 876 877以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。 878 879| 错误码ID | 错误信息 | 880| -------- | -------- | 881| 10200011 | The Symbol.iterator method cannot be bound. | 882 883**示例:** 884 885```ts 886let arrayList: ArrayList<number> = new ArrayList(); 887arrayList.add(2); 888arrayList.add(4); 889arrayList.add(5); 890arrayList.add(4); 891 892// 使用方法一: 893let numbers: Array<number> = arrayList.convertToArray() 894for (let item of numbers) { 895 console.log(`value : ${item}`); 896} 897 898// 使用方法二: 899let iter = arrayList[Symbol.iterator](); 900let temp: IteratorResult<number> = iter.next(); 901while(!temp.done) { 902 console.log(`value:${temp.value}`); 903 temp = iter.next(); 904} 905```