1.时间消耗
在单值搜索的功能中
ArrayList的时间复杂度是O(n),而HashMap的时间复杂度是O(1)。
如果需要较高的速度下,更多想选择HashMap
2.空间消耗
一个存储相同时间的HashMap和ArrayList对内存的消耗比是不一样的,
ArrayList的内存含金量有70%
而HashMap只有百分之20%
如果在内存受限的情况下更多选择ArrayList
3.去重效果
在去重中ArrayList会使用 contains方法但是 contains个方法也是通过查找来进行的
如同下列代码,是通过遍历查询速度有限
这是我们会选择HashSet进行高效去重
public boolean contains(Object o) {
return indexOf(o) >= 0;
}
public int indexOf(Object o) {
if (o == null) {
for (int i = 0; i < size; i++)
if (elementData[i]==null)
return i;
} else {
for (int i = 0; i < size; i++)
if (o.equals(elementData[i]))
return i;
}
return -1;
}