本文介绍了基本Java容器上的CRUD操作的渐进复杂性是什么的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图弄清楚Java基本集合上操作的复杂性(使用big-o表示法).与此C ++语言问题中的操作类似.

I am trying to figure out what are the complexities (using the big-o notation) of operations on Java basic collections. Similarly as in this question for C++ language.

使用常识,这就是我所拥有的:

Here is what I have, using the common sense:

  • add(E e)
  • add(int index,E e)
  • set(int索引,E元素
  • get(int索引)
  • 删除(E e)删除(int索引)
  • 包含(E e)
  • 列表串联(addAll)
  • add(E e)
  • add(int index, E e)
  • set(int index, E element
  • get(int index)
  • remove(E e) remove(int index)
  • contains(E e)
  • list concatenation (addAll)
  • add(E e)
  • add(int index,E e)
  • set(int索引,E元素
  • get(int索引)
  • 删除(E e)删除(int索引)
  • 包含(E e)
  • 列表串联(addAll)
  • add(E e)
  • add(int index, E e)
  • set(int index, E element
  • get(int index)
  • remove(E e) remove(int index)
  • contains(E e)
  • list concatenation (addAll)
  • add(E e)
  • 删除(E e)
  • 包含(E e)
  • 使用迭代器
  • 查找/获取元素
  • add(E e)
  • remove(E e)
  • contains(E e)
  • find/get an element using iterator
  • add(E e)
  • 删除(E e)
  • 包含(E e)
  • addAll
  • 在执行二进制搜索时,使用迭代器或查找元素
  • add(E e)
  • remove(E e)
  • contains(E e)
  • addAll
  • find an element using iterator or perhaps when implementing the binary search
  • 放置(K键,V值)
  • 获取(K键)
  • 删除(E e)
  • containsKey(对象密钥)
  • 包含值(对象值)
  • putAll
  • 使用迭代器或也许查找/获取元素,与TreeSet
  • 中的相同
  • put(K key, V value)
  • get(K key)
  • remove(E e)
  • containsKey(Object key)
  • containsValue(Object value)
  • putAll
  • find/get an element using iterator or perhaps same as in TreeSet
  • 放置(K键,V值)
  • 获取(K键)
  • 删除(E e)
  • containsKey(对象密钥)
  • 包含值(对象值)
  • putAll
  • 使用迭代器
  • 查找/获取元素
  • put(K key, V value)
  • get(K key)
  • remove(E e)
  • containsKey(Object key)
  • containsValue(Object value)
  • putAll
  • find/get an element using iterator

注意:基于哈希的集合假定设计良好的哈希函数位于中,否则位于

NOTE: Collections based on hashing assume well designed hash function to be in otherwise it is in

问题:这是正确的吗?

推荐答案

关于此方面的最佳知识就是文档.这是我可以通过一两个快速搜索找到的内容.

Your best source of knowledge about this would be the documentation. Here is what I could find with a quick search or two.

LinkedList

根据我记得的有关双链表的信息,我会说您的常识​​假设"是正确的.

From what I remember about doubly-linked lists, I would say your "common sense assumption" is correct.

LinkedHashSet

TreeSet

地图

HashMap

LinkedHashMap

TreeMap

如果未提及某些方法,请尝试查找该特定方法.如果文档中未提及运行时间,则可能与实现有关.

If some of the methods are not mentioned, try to look up that specific method. If the running time is not mentioned anywhere in the documentation, it might be implementation dependent.

这篇关于基本Java容器上的CRUD操作的渐进复杂性是什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-03 05:03