TreeSet和compareTo()方法.单个排序或多个排序

Dan*_*Mac 1 java hashset compareto treeset

我目前正在开发一个程序,我用它TreeSet来存储唯一的密钥.我正在使用TreeSet,因为我希望它们排序.

截至目前,我一直在制作一个TreeSet对象,并在需要时一次一个地添加字符串.

TreeSet set = new TreeSet();
set.add("How");
set.add("Are");
set.add("You");
Run Code Online (Sandbox Code Playgroud)

据推测,TreeSet使用中的compareTo方法Compareable interface对字符串进行排序.这意味着每次向其添加String时,TreeSet都必须进行排序.

现在我的问题是:创建一个HashSet然后创建TreeSet后面all strings的HashSet 会更有效吗?

TreeSet<String> treeSet = new TreeSet<String>(set);
Run Code Online (Sandbox Code Playgroud)

我的想法是关于TreeSet是否只需要以这种方式进行单一排序.

提前致谢

nos*_*sid 5

TreeSet是一个自平衡二叉搜索树.这意味着它将log(n, 2)对每个插入进行比较.如果您单独添加元素或TreeSet从另一个集合创建元素,则没有任何区别.