java树集TreeSet<E>类问题

书上说:
树集用add方法添加节点,节点会按其存放的数据的“大小”顺序一层一层地依次排列,在同一层中的节点从左到右按“大小”顺序递增排列,下一层的都比上一层的小。
然后给了一个例子和相应图示:

TreeSet<String> mytree = new TreeSet<String>();
        mytree.add("boy");
        mytree.add("zoo");
        mytree.add("apple");
        mytree.add("girl"); 

图片说明

这里不明白的是为什么是这么排列?boy和girl这两个单词?
树集TreeSet类究竟是按怎样一种方式排列数据的?

主要靠泛型的类所实现的compareTo方法,你用的是String,他就是根据String中的compareTo方法进行排序的,比较的是编码的差值,如果你的泛型类型没有实现Comparable接口(compareTo方法),那就不能进行排序

http://blog.csdn.net/pacosonswjtu/article/details/50319649

这是一个二叉树的排列,只需要根据先序遍历就能遍历出一格有序的队列,为什么boy比girl排在前面,是由于在asCLL码中b在g前面,参考阿斯克码表和字符串比较规则