java树集的实际工作原理

7fyelxc5  于 2021-08-25  发布在  Java
关注(0)|答案(3)|浏览(322)

somoene能否解释treeset是如何工作的,从而获得以下输出?非常感谢。

import java.util.*;
public class Main {
    public static void main(String args[]) {
    Set<String> fructe = new TreeSet<>(Arrays.asList("mere", "pere", "banane", "mere", "kiwi", "ananas", "portocale"));
    System.out.println(fructe);
    }
}

[ananas, banane, kiwi, mere, pere, portocale]
mftmpeh8

mftmpeh81#

简单来说,你可以考虑 TreeSet 是一个 Set ,其中元素是唯一的。
有关进一步资料,请参阅 TreeSet 类扩展 SortedSet , Set , CollectionIterable 如下图所示。

因此,在 TreeSet 是唯一的,并根据实现的排序算法进行排序。要素 TreeSet 必须实施 Comparable 并覆盖 compareTo() 方法,以便java知道如何在元素不是基元的情况下比较它们。
你可以在这里找到更多信息。
希望这能帮助你解决你的问题!

nmpmafwu

nmpmafwu2#

openjdk实现使用https://en.wikipedia.org/wiki/red%e2%80%93black_tree
根据使用的构造函数,可以使用元素的自然顺序或在设置的创建时间提供的比较器对元素进行排序。

ahy6op9u

ahy6op9u3#

TreeSet 字符串的集合只是按字典顺序存储字符串。词典顺序与词典顺序相同,即单词在词典中的排序方式。如果两个字符串长度相同且在相同位置包含相同字符,则它们在词典编纂上是相等的。
如果希望得到不同的结果,则可以使用自定义 Comparator .

相关问题