TreeSet:
如果树中包含n 个元素 , 査找新元素的正确位置平均需要 l 0 g 2 n 次比较。 例如 ,如果一棵树包含了 1000 个元素, 添加一个新元素大约需要比较10 次。
如果使用TreeSet , 就 需 要 提 供 Comparator < Rectangle >。如何比较两个矩形呢 ? 比较面积吗 ? 这行不通 。 可能会有两个不同的矩形,它们的坐标不同 , 但面积却相同。 树的排序必须是全序 。 也就是说,任意两个元素必须是可比的 , 并且只有在两个元素相等时结果才为 0 。 确实,有一种矩形的排序 ( 按照坐标的词典顺序排列 ) 方式 , 但它的计算很牵强且很繁琐。 相反地 ,Rectangle 类已经定义了散列函数 , 它直接对坐标进行散列 。 |
|