我对下一组的功能有疑问,我真的知道 java 中 TreeSet 和 HashSet 之间有什么区别,以及 TreeMap 和 HashMap 之间有什么区别。
谢谢。
TreeMaps 和 TreeSets 在几乎所有方面都与 HashMaps 和 HashSets 相似,只是 Tree 版本将数据保持在排序顺序(与未指定顺序的 Hash 版本不同)。
使用 TreeMap 和 TreeSet,您可以选择使用内容的“自然”顺序(假设内容实现了 Comparable 接口),或者您可以提供自己的 Comparator 来为您进行排序。
一个令人惊讶的区别是您可以存储null
在 HashMap 和 HashSet 中,但不能(必须)存储在 TreeSet 中或作为 TreeMap 中的键。
哈希集比树集快得多,但不提供排序保证。树集通过使用比较器(自然排序)将数据组织在树中,散列集在散列表中组织数据(使用散列函数)。您可以在哈希集中存储空值的另一件事。虽然你不能在树集中存储 null 它会抛出异常空指针异常