0

我对下一组的功能有疑问,我真的知道 java 中 TreeSet 和 HashSet 之间有什么区别,以及 TreeMap 和 HashMap 之间有什么区别。

谢谢。

4

2 回答 2

2

TreeMaps 和 TreeSets 在几乎所有方面都与 HashMaps 和 HashSets 相似,只是 Tree 版本将数据保持在排序顺序(与未指定顺序的 Hash 版本不同)。

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

一个令人惊讶的区别是您可以存储null在 HashMap 和 HashSet 中,但不能(必须)存储在 TreeSet 中或作为 TreeMap 中的键。

于 2013-10-31T23:57:10.360 回答
1

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

于 2013-11-01T08:01:17.363 回答