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&lt;T&gt;) => 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&lt;T&gt; | 否 | 当前调用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&lt;T&gt;) => 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&lt;T&gt; | 否 | 当前调用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&lt;T&gt;
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&lt;T&gt; | 返回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&lt;T&gt;
613
614克隆一个与ArrayList相同的实例,并返回克隆后的实例。修改克隆后的实例并不会影响原实例。
615
616**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
617
618**系统能力:** SystemCapability.Utils.Lang
619
620
621**返回值:**
622
623| 类型 | 说明 |
624| -------- | -------- |
625| ArrayList&lt;T&gt; | 返回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&lt;T&gt;
684
685把当前ArrayList实例转换成数组,并返回转换后的数组。
686
687**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
688
689**系统能力:** SystemCapability.Utils.Lang
690
691**返回值:**
692
693| 类型 | 说明 |
694| -------- | -------- |
695| Array&lt;T&gt; | 返回数组类型。 |
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&lt;T&gt;
862
863返回一个迭代器,迭代器的每一项都是一个 JavaScript 对象,并返回该对象。
864
865**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
866
867**系统能力:** SystemCapability.Utils.Lang
868
869**返回值:**
870
871| 类型 | 说明 |
872| -------- | -------- |
873| IterableIterator&lt;T&gt; | 返回一个迭代器。 |
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```