java思想笔记:
1.list
数组比所有list都快。
对于随即访问(get)ArrayList开销小于LinkedList,迭代遍历linkedList要比arraylist快,插入和删除元素,linkedlist比arraylist明显快很多,尤其删除。
Vector通常不如Arraylist尽量避免使用,它的存在原因是支持过去代码
最好arraylist作为默认首选,当程序性能因为经常从list中插入和删除而变差的时候再去选择LinkedList
2.Set
HashSet的性能总是比TreeSet好,特别是查询和添加元素操作。Treeset存在原因是他能维持元素的排序状态,所以,只有当你需要一个好的排序Set时候才选择Treeset
对于插入操作LinkedHashSet比hashset略慢,由于维护链表所造成的额外开销造成,不过遍历很快。
3.Map的选择:
HashTable和HashMap效率大致相同,TreeMap通常比Hashmap慢,Treemap你可以利用它生成一个排序好的队列,树的行为方式:总是处于排序状态,不需要对他进行排序。
当Treemap被填充之后,就可以调用keyset方法,取得由键组成的set,然后使用toArray生成键的数组,接下来使用static Array.binarySearch方法,在排序中的数组中快速找到对象,优先考虑使用hashmap因为它就是快速查询设计的。
LinkedHashMap比Hashmap慢一点。
1.list
数组比所有list都快。
对于随即访问(get)ArrayList开销小于LinkedList,迭代遍历linkedList要比arraylist快,插入和删除元素,linkedlist比arraylist明显快很多,尤其删除。
Vector通常不如Arraylist尽量避免使用,它的存在原因是支持过去代码
最好arraylist作为默认首选,当程序性能因为经常从list中插入和删除而变差的时候再去选择LinkedList
2.Set
HashSet的性能总是比TreeSet好,特别是查询和添加元素操作。Treeset存在原因是他能维持元素的排序状态,所以,只有当你需要一个好的排序Set时候才选择Treeset
对于插入操作LinkedHashSet比hashset略慢,由于维护链表所造成的额外开销造成,不过遍历很快。
3.Map的选择:
HashTable和HashMap效率大致相同,TreeMap通常比Hashmap慢,Treemap你可以利用它生成一个排序好的队列,树的行为方式:总是处于排序状态,不需要对他进行排序。
当Treemap被填充之后,就可以调用keyset方法,取得由键组成的set,然后使用toArray生成键的数组,接下来使用static Array.binarySearch方法,在排序中的数组中快速找到对象,优先考虑使用hashmap因为它就是快速查询设计的。
LinkedHashMap比Hashmap慢一点。