从Java集合中访问元素的速度更快

Cha*_*nya 4 java collections performance

我试图了解哪些更快从Java集合中访问元素,如ArrayList,LinkedList,HashSet,TreeSet,HashMap,TreeMap等.

从这个问题:适合快速获取和快速删除的java集合,我知道ArrayList将O(1)和TreeMap作为O(log n)

其中:Map/ArrayList:哪一个搜索元素更快,显示ArryList为O(n),HashMap为O(1),TreeMap为O(log n)

在哪里:为什么处理排序数组比处理未排序数组更快?说排序数组比未排序数组快.由于TreeMap中的元素已排序,那么我可以假设所有已排序的集合都比未排序的集合更快吗?

请帮助我理解哪些更快用于访问列表,集合,地图等实现的java集合中的元素.

Moh*_*han 18

每种集合类型都适用于特定场景.没有最快最好的收藏品.

  • 如果您需要使用索引快速访问元素,那么ArrayList您的答案就是.
  • 如果您需要使用密钥快速访问元素,请使用HashMap.
  • 如果需要快速添加和删除元素,请使用LinkedList(但它的索引访问性能非常差).

等等.