将 TreeSet<Integer> 与允许重复的比较器一起使用会产生什么影响

OSE*_*ATI 0 java binary-tree comparator treeset

问题(Java 集合中没有重复的二叉树)。

我需要一个具有重复项的二叉树,我需要 O(Log(n)) 复杂度的搜索和插入,同时保持顺序(所以我不能使用哈希表),java没有实现二叉树的集合并允许重复,同时保留所有二叉树操作。

我们可以使用 TreeSet 来做到这一点吗?

我正在尝试调整 TreeSet 并通过传递一个永远不会返回 0 的比较器来允许重复项。我知道这不再是一个集合,但没关系,我需要重复项。

例子

TreeSet<Integer> binaryTreeWithDuplicates = new TreeSet<Integer>((x, y) -> x>y?1:-1);
Run Code Online (Sandbox Code Playgroud)

这种实施和使用会产生不良的副作用吗?因为我们显然违反了比较器 api
中的规则,例如符号规则。

Lou*_*man 8

contains永远不会回来true

集合中可能有任意重复项,但无法识别或删除它们。(remove永远不会工作。)