提交 302af4dc 编写于 作者: W wizardforcel

table

上级 04e91315
......@@ -769,11 +769,12 @@ public class ListPerformance {
首先用元素填充传递给`test()``List`,然后对`tests`数组中的测试计时。由于测试用机器的不同,结果当然也会有所区别。这个程序的宗旨是揭示出不同集合类型的相对性能比较。下面是某一次运行得到的结果:
```
类型 获取 迭代 插入 删除
ArrayList 110 270 1920 4780
LinkedList 1870 7580 170 110
```
| 类型 | 获取 | 迭代 | 插入 | 删除 |
| --- | --- | --- | --- | --- |
| `ArrayList` | 110 | 270 | 1920 | 4780 |
| `LinkedList` | 1870 | 7580 | 170 | 110 |
可以看出,在`ArrayList`中进行随机访问(即`get()`)以及循环迭代是最划得来的;但对于`LinkedList`却是一个不小的开销。但另一方面,在列表中部进行插入和删除操作对于`LinkedList`来说却比`ArrayList`划算得多。我们最好的做法也许是先选择一个`ArrayList`作为自己的默认起点。以后若发现由于大量的插入和删除造成了性能的降低,再考虑换成`LinkedList`不迟。
......@@ -851,76 +852,16 @@ public class SetPerformance {
最后对`ArraySet`的测试只有500个元素,而不是1000个,因为它太慢了。
```
类型 测试大小 添加 包含 迭代
Type
Test size
Add
Contains
Iteration
10
22.0
11.0
16.0
TreeSet
100
22.5
13.2
12.1
1000
31.1
18.7
11.8
10
5.0
6.0
27.0
HashSet
100
6.6
6.6
| 类型 | 测试大小 | 添加 | 包含 | 迭代 |
| --- | --- | --- | --- | --- |
| TreeSet | 10 | 22.0 | 11.0 | 16.0 |
| | 100 | 22.5 | 13.2 | 12.1 |
| | 1000 | 31.1 | 18.7 | 11.8 |
| HashSet | 10 | 5.0 | 6.0 | 27.0 |
| | 100 | 6.6 | 6.6 | 10.9 |
| | 1000 | 7.4 | 6.6 | 9.5 |
10.9
1000
7.4
6.6
9.5
```
进行`add()`以及`contains()`操作时,`HashSet`显然要比`ArraySet`出色得多,而且性能明显与元素的多寡关系不大。一般编写程序的时候,几乎永远用不着使用`ArraySet`
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册