TreeSet
TreeSet是有序的(必须实现Comparable接口),它会把元素排序,但如果元素没有自然顺序,那就出错。
HashSet特性
不同步,即线程不安全的
无序
无重复元素(所有Set都是这个特性)
底层使用哈希表结构
HashMap特性
底层使用哈希表结构
因为使用哈希表,所有键元素类型必须重写equals()和hashCode()方法
TreeMap的特性
底层使用二叉树结构;
有序!使用键类型的自然顺序,或者TreeMap的比较器排序;
使用TreeMap要求键类型有自然顺序,或者给TreeMap提供比较器;
总的来说,默认用HashMap和HashSet,需要顺序的时候用Tree |