Java中树和散列(集合映射)的区别

Java中树和散列(集合映射)的区别,java,hashmap,hashset,treemap,treeset,Java,Hashmap,Hashset,Treemap,Treeset,我对下一个集合的功能有一个问题,我真的想知道java中TreeSet和HashSet之间的区别是什么,TreeMap和HashMap之间的区别是什么 谢谢。树映射和树集在几乎所有方面都与哈希映射和哈希集相似,只是树版本将数据保持在排序顺序中(与哈希版本不同,哈希版本中未指定顺序) 使用TreeMap和TreeSet,您可以选择使用内容的“自然”顺序(假设内容实现了可比较的接口),或者您也可以提供自己的比较器来进行排序 令人惊讶的一个区别是,您可以在HashMap和HashSet中存储null,但

我对下一个集合的功能有一个问题,我真的想知道java中TreeSet和HashSet之间的区别是什么,TreeMap和HashMap之间的区别是什么


谢谢。

树映射和树集在几乎所有方面都与哈希映射和哈希集相似,只是树版本将数据保持在排序顺序中(与哈希版本不同,哈希版本中未指定顺序)

使用TreeMap和TreeSet,您可以选择使用内容的“自然”顺序(假设内容实现了可比较的接口),或者您也可以提供自己的比较器来进行排序


令人惊讶的一个区别是,您可以在HashMap和HashSet中存储
null
,但不一定要存储在TreeSet中或作为TreeSet中的键。

TreeSet和TreeSet在几乎所有方面都类似于HashMap和HashSet,除了树版本保持数据的排序顺序之外(与未指定顺序的哈希版本不同)

使用TreeMap和TreeSet,您可以选择使用内容的“自然”顺序(假设内容实现了可比较的接口),或者您也可以提供自己的比较器来进行排序


令人惊讶的一个区别是,您可以在HashMap和HashSet中存储
null
,但不一定要存储在TreeSet中或作为TreeSet中的键。

TreeSet和TreeSet在几乎所有方面都类似于HashMap和HashSet,除了树版本保持数据的排序顺序之外(与未指定顺序的哈希版本不同)

使用TreeMap和TreeSet,您可以选择使用内容的“自然”顺序(假设内容实现了可比较的接口),或者您也可以提供自己的比较器来进行排序


令人惊讶的一个区别是,您可以在HashMap和HashSet中存储
null
,但不一定要存储在TreeSet中或作为TreeSet中的键。

TreeSet和TreeSet在几乎所有方面都类似于HashMap和HashSet,除了树版本保持数据的排序顺序之外(与未指定顺序的哈希版本不同)

使用TreeMap和TreeSet,您可以选择使用内容的“自然”顺序(假设内容实现了可比较的接口),或者您也可以提供自己的比较器来进行排序


让人惊讶的一个区别是,您可以在HashMap和HashSet中存储
null
,但不一定存储在TreeSet中或作为TreeMap中的键。

HashSet比TreeSet快得多,但不提供排序保证。 树集通过使用比较器(自然排序)在树中组织数据,哈希集在哈希表中组织数据(使用哈希函数)。
还有一件事,您可以在哈希集中存储空值。虽然您不能在树集中存储空值,但它会引发异常空指针异常。哈希集比树集快得多,但不提供排序保证。 树集通过使用比较器(自然排序)在树中组织数据,哈希集在哈希表中组织数据(使用哈希函数)。
还有一件事,您可以在哈希集中存储空值。虽然您不能在树集中存储空值,但它会引发异常空指针异常。哈希集比树集快得多,但不提供排序保证。 树集通过使用比较器(自然排序)在树中组织数据,哈希集在哈希表中组织数据(使用哈希函数)。
还有一件事,您可以在哈希集中存储空值。虽然您不能在树集中存储空值,但它会引发异常空指针异常。哈希集比树集快得多,但不提供排序保证。 树集通过使用比较器(自然排序)在树中组织数据,哈希集在哈希表中组织数据(使用哈希函数)。
还有一件事,你可以在散列集中存储空值。虽然你不能在树集中存储空值,但它会引发异常空指针异常

我知道这些集合是如何工作的,但我想知道两者之间的区别。谢谢阅读每个类的文档。然后创建一个不同的帖子,并提出更精确的问题。(我想知道它们是如何工作的意味着知道它们之间的差异,但是……)我知道如何创建这些集合以及如何填充这些集合,但我看不出它们之间的差异,对我来说,这些集合起到了相同的作用。文档讨论了许多实现之间存在差异的问题,或者为这些问题提供了线索:1)排序保证(或缺少);2)对项目的要求;3)预期的性能界限;4)接口中未定义的其他方法。我知道这些集合是如何工作的,但我想知道两者之间的区别。感谢阅读每个类的文档。然后用更精细的问题创建不同的帖子。(我想知道它们是如何工作的意味着知道它们之间的差异,但是……)我知道如何创建这些集合以及如何填充这些集合,但我看不出它们之间的差异,对我来说,这些集合起到了相同的作用。文档讨论了许多实现之间存在差异的问题,或者为这些问题提供了线索:1)排序保证(或缺少);2)项目要求;3)预期性能界限;4) 接口中未定义的其他方法。我知道这些集合是如何工作的,但我想知道两者之间的区别。感谢阅读每节课的文档。然后用一个更精确的问题创建一个不同的帖子。(我想知道它们是如何工作的意味着知道它们之间的区别,但是……)我知道如何创建这些集合,以及如何填充这些集合,但我看不出区别,对我来说,这些集合起到了相同的作用。文档讨论了许多问题,或者为这些问题提供了线索