Skip to content

Latest commit

 

History

History
38 lines (26 loc) · 1.69 KB

集合-集、映射.md

File metadata and controls

38 lines (26 loc) · 1.69 KB

集合-集、队列、映射

散列集

散列表用链表数组实现,每个列表被称为桶。想要查找表中对象的位置,就要先计算它的散列码,然后与桶的总数取余,得到的结果就是保存这个元素得桶的索引。

哈希表hashtable(key,value) 就是把Key通过一个固定的算法函数既所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空间里。

装填因子确定何时对散列表进行再散列。装填因子为0.75对于大多数程序来说比较合理。

集是没有重复元素的元素集合,HashSet类实现基于散列表的集,用add方法添加元素。contains方法被重新定义,用来快速查找某个元素是否已经在集中,他只查看一个桶中的元素,不必查看集合中所有元素。散列集迭代器依此访问所有的桶,只有不关心集合中元素的顺序时候才能使用散列集。

HashSet<E>:
HashSet();
HashSet(Collection<? extends E> elements);
HashSet(int initialCapacity); //构造空的具有指定桶数的散列集
HashSet(int initialCapacity, float loadFactor);  //指定桶数与散列因子
int hashCode(); //返回对象的散列码

树集

TreeSet树集是一个有序集合。 如果树中包含n个元素,查找新元素的正确位置平均需要log2n次比较。

TreeSet<E>:
TreeSet();
TreeSet(Comparator<? super E> elements);
TreeSet(Comparator<? extends E> elements);

HashSet:可以放入null,但只能放入一个null。

TreeSet:不允许放入null值。 非线程安全。