ArrayList是基于数组结构的,所以查询速度比较快,与linkedList对比都是线性结构,而linkedlist是基于链表,所以增删改比较快,注意的是,虽然ArrayList有动态扩容的功能,但是当你对超出范围进行复制依然会出现空指针异常,而实际当中都是既有查询又有插入,而他们两种算法都非常极端,于是hash算法出现了,一个好的hash算法只有他的散列算法设计的好,就会避免解决大量的冲突,他的优势非常明显,于是hashset出现了。还有一种是基于树形结构的,也就是treeset和treemap,他们都是基于二叉排序树的一种--红黑树,treeset底层是用treemap实现,红黑树不同于其他排序树,就是可以根据颜色进行调整,使其处于平衡。其查找效率还是非常乐观,但是树的调平是一个非常耗性能的,所以开发中基本不用。 |
|