首页 > 代码库 > TreeSet

TreeSet

TreeSet:二叉树

有序,存自定义对象时的排序问题

cannot be cast to java.lang.Comparable

Comparable=可比较的

a.Source

b.Alt+Shift+S 可以调出重写方法的菜单

c.跟错误提示走

方法一:传入的对象所属的类,必须实现Comparable

方法二:初始化TreeSet时,传入一个比较器(比较器是一个实现了Comparator的类的对象)作为一个构造参数。

========================================================================================================

Collection 接口 和 Map接口 集合框架的两个老祖先

                  Collection(接口)                                             Map(接口)  <和Set很像>

                      /               \                                               /       |       \

                     /                 \                                             /        |        \ 

                    /                   \                                           /         |         \

           List(接口、有索引)    Set(接口、无索引)       HashMap,TreeMap,HashTable   

             /                            \                                      (实现类)                               

            /                              \                                   

           /(实现类)                 (实现类)  \

ArrayList,LinkedList,Vector        HashSet,TreeSet

其中Collection 是单列集合,Map是双列集合

key-value 键值对

键不可以重复,value可以重复

Map

   HashMap

   TreeMap

   HashTable

   HashTable:底层存储结构是哈希表,键和值都不可以是null。已过时。

   HashMap:  底层是哈希表,键值都可以是null。

   TreeMap:  底层是二叉树,支持键排序。

keyset,valueset,entryset(Map.Entry)

读取方式

1.获得所有键的集合keyset

2.获得所有值的集合valueset

3.获得所有条目entryset

entry=一行,一个条目(包含键和值)

TreeMap:有序的(键是有序的)


TreeSet