具有通过人工分类组一个TreeSet的好处(benefit of having a treeset

2019-10-17 04:52发布

在收集,我们可以排序的集合或地图按我们的要求。 TreeSet中或TreeMap中也提供了分类收集。 有没有使用TreeSet的时候,我们需要分类收集的任何好处

Answer 1:

海报前,都没有提到的一个重要标准:如果您的集合中的元素插入经常改变自己的状态,即需要多次重新排序同一集合,也许TreeSetTreeMap是不理想的,因为元素只是排序在插入过程中,从来不算账。 也就是说,如果你改变一个元素的排序键TreeSet / TreeMap ,它不会自动重新排序。 你需要更新它,并重新添加更新之后,以确保它将会在合适的地方插入之前,从集合中删除的元素。 你可以使用我的UpdateableTreeSet来帮助你保持一个TreeSet排序。

说了上面,你可以得出结论,在这种情况下,也许一个未排序的集合加上使用Collections.sort()的需求可能是要走的更简单的方法。 哪条路是更快的整体要看您的具体情况。 我想这UpdateableTreeSet应该非常有助于你保持排序局限于地方,你真的改变排序键现有的集合。



Answer 2:

TreeSet中

当以往任何时候都需要它始终是有益的有序set。

  • 日志为基本操作(n)的时间成本(添加,删除和包含)
  • TreeSet中有一些方便的方法来处理的有序集合像第一个(),最后(),耳机()和tailSet()等
  • 内TreeSet中的项目按,如果你不给自己比较它们的自然顺序自动排序。

还请到通过TreeSet的文档。 TreeSet中



Answer 3:

最大的区别是

TreeSet保持数据排序的所有的时间和你保持手动排序可能不会在所有时间进行排序一组。

所以TreeSet建议,如果你不想让分拣设定所有的时间。



Answer 4:

除了其他人所说,TreeSet中有一些很酷的功能,如快速获取一个子集的能力。

以外的是,它是多久你所需要的东西排序的问题。 如果您要创建100套,只需要1或2其中排序,然后在插入过程中排序的开销可能是不值得的。 但是,如果你要设置的排序,甚至一个单一的时间,树组将要走的路。



文章来源: benefit of having a treeset over a manually sorted set
标签: java set treeset