Arraylist 和 linkedlist || hashset 和treeset. || hashMap 和 TreeMap
参考:http://liuyuan418921673.iteye.com/blog/2256120 1. ArrayList和LinkedList的区别和使用场景 ArryList 与linkedList 都实现了List 接口 ArrayList:实现list接口 采用数组结构保存对象 优点:便于对集合进行快速的随机访问 查询操作效率比较高 缺点:插入和删除操作效率比较低 原因:指定位置索引插入对象时,会同时将此索引位置之后的所有对象相应的向后移动一位。删除会同时向前移动一位。 linkedList:实现list接口 采用链表结构保存对象 优点:插入和删除操作效率比较高 缺点:查询操作效率比较低 原因:链表结构在插入对象时只需要简单的需该链接位置,省去了移动对象的操作 在查询上LinkedList只能从链表的一端移动到另一端故效率较低 使用场景: ArrayList使用场景:一般顺序遍历情况下使用ArrayList 尽量不对ArrayList进行插入或删除操作(删除尾部除外),若有多次删除/插入操作又有随机遍历的需求,可以再构建一个ArrayList,把复合条件的对象放入新ArrayList,而不要频繁操作原ArrayList LinkedList使用场景:经常有删除/插入操作而顺序遍历列表 3. HashSet与TreeSet的使用场景 HashSet