代码之家  ›  专栏  ›  技术社区  ›  gmhk

hashMap、List和Set的数据结构

  •  3
  • gmhk  · 技术社区  · 16 年前

    有谁能指导我深入了解所使用的数据结构,以及它是如何在Util Collection页的List、Set和Maps中实现的。

    在访谈中大部分的问题都会在算法上,但是我从来没有看到任何地方的实现细节,可以请任何一个人分享一下信息。

    4 回复  |  直到 16 年前
        1
  •  4
  •   Paul Brinkley    16 年前

    要了解Java如何实现集合,最重要的地方是源代码本身,它是免费提供的。通常,列表实现为数组(ArrayList)或链表(LinkedList);集合可以是哈希表(HashSet)或树(TreeSet);映射是哈希表(HashMap)。

        2
  •  3
  •   Guillaume    16 年前

    API的源代码是可用的,获取JDK并从安装文件夹中打开src.zip文件。

        3
  •  3
  •   Deepak S    8 年前

    阵列列表 :数组

    链表 :双链表(条目对象)

    哈希集 :在内部使用HashMap,将数据存储为键,将伪对象(类对象的)存储为映射中的值。

    树图 :Entry对象的红黑树实现。

    :内部使用TreeMap。键作为数据,虚拟对象作为值。

    :是这些集合中的内部类,通常具有键、值、对其他条目对象的引用等。

        4
  •  1
  •   Rubys    16 年前

    你可以随时打开源文件,它都在那里,但是,我不推荐它,因为通常它们很难理解。相反,我会尝试找到底层的数据结构,并进行查找。维基百科包含了你想知道的关于这些主题的大部分信息,而谷歌则包含了其余的信息。
    dynamic array ,
    set ,
    地图通常是 hash tables 由密钥的散列设置密钥,并存储为键值对。
    如果您要深入研究源代码,我建议您熟悉“它可能如何工作”,否则很难理解,尤其是哈希表。