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