LinkedHashMap基本上是一个带有O(1)'包含'的LinkedList吗?

rth*_*sen 0 java list

我正面临一个微优化,我在LinkedListcontains上频繁调用.将它更改为LinkedHashMap是一个好主意吗?

注意:我只是添加并检查列表是否包含特定值.

ami*_*mit 6

它有点复杂然后"只是一个LinkedList平均情况O(1)包含",但实质上 - 功能说是.

A LinkedHashMap允许O(1)包含,并按顺序保存元素 - 与a相同LinkedList.您可能还想查看一下LinkedHashSet

但是,如果您需要重复输入,则可能会遇到问题.A LinkedHashMap和LinkedHashSet正在实现Set和Map接口,而不是List接口,因此它们不允许重复.

  • 或者如果只有值而不是key =值,则为LinkedHashSet.假设您没有重复值. (2认同)