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