一尘不染

TreeSet的优缺点是什么?

java

只是想知道TreeSet的优缺点是什么,是否有人可以告诉我?谢谢!


阅读 954

收藏
2020-12-03

共1个答案

一尘不染

收藏类之一。它使您可以按键或按键顺序访问集合中的元素。它比ArrayList或HashMap具有更多的开销。当您不需要顺序访问时,只需按键查找即可使用HashSet。使用ArrayList并使用Arrays。如果只想按顺序排列元素,则排序。TreeSet始终保持元素顺序。使用ArrayList,您可以在需要时进行排序。使用TreeSets时,密钥必须嵌入存储在集合中的对象中。通常,您可能具有字符串的TreeSet。您所能做的就是告诉给定的字符串是否在Set中。它不会像树图那样找到您的关联对象。使用TreeMap,键和与它们关联的对象是分开的。

奇怪的是,TreeSet及其兄弟TreeMap与表示树无关。在内部,他们使用树结构为您提供按字母顺序排序的“集合/地图”,但您无法控制父母与孩子之间的链接。

内部TreeSet使用红黑树。无需对数据进行预排序即可获得平衡良好的树。另一方面,如果对数据进行了排序(升序或降序),则不会像其他类型的树那样受到伤害。

如果您没有提供Comparator来定义所需的顺序,则TreeSet需要在item类上使用Comparable实现来定义自然顺序。

2020-12-03