Skip to content

Commit b853a3c

Browse files
committed
Update ArrayList-Grow.md
1 parent 0714db8 commit b853a3c

File tree

1 file changed

+26
-11
lines changed

1 file changed

+26
-11
lines changed

docs/java/collection/ArrayList-Grow.md

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -321,23 +321,38 @@ public class EnsureCapacityTest {
321321
long endTime = System.currentTimeMillis();
322322
System.out.println("使用ensureCapacity方法前:"+(endTime - startTime));
323323

324-
list = new ArrayList<Object>();
325-
long startTime1 = System.currentTimeMillis();
326-
list.ensureCapacity(N);
327-
for (int i = 0; i < N; i++) {
328-
list.add(i);
329-
}
330-
long endTime1 = System.currentTimeMillis();
331-
System.out.println("使用ensureCapacity方法后:"+(endTime1 - startTime1));
332324
}
333325
}
334326
```
335327

336328
运行结果:
337329

338330
```
339-
使用ensureCapacity方法前:4637
340-
使用ensureCapacity方法后:241
331+
使用ensureCapacity方法前:2158
332+
```
333+
334+
```java
335+
public class EnsureCapacityTest {
336+
public static void main(String[] args) {
337+
ArrayList<Object> list = new ArrayList<Object>();
338+
final int N = 10000000;
339+
list = new ArrayList<Object>();
340+
long startTime1 = System.currentTimeMillis();
341+
list.ensureCapacity(N);
342+
for (int i = 0; i < N; i++) {
343+
list.add(i);
344+
}
345+
long endTime1 = System.currentTimeMillis();
346+
System.out.println("使用ensureCapacity方法后:"+(endTime1 - startTime1));
347+
}
348+
}
349+
```
350+
351+
运行结果:
352+
353+
```
354+
355+
使用ensureCapacity方法前:1773
341356
```
342357

343-
通过运行结果,我们可以很明显的看出向 ArrayList 添加大量元素之前最好先使用`ensureCapacity` 方法,以减少增量重新分配的次数
358+
通过运行结果,我们可以看出向 ArrayList 添加大量元素之前最好先使用`ensureCapacity` 方法,以减少增量重新分配的次数

0 commit comments

Comments
 (0)