HashMap,HashTable,LinkedHashMap,TreeMap的面试题

匿名 (未验证) 提交于 2019-12-02 23:55:01

二 ,hashTable继承自Dictionary类,不允许记录的键和值为空,支持线程的同步,即任意时刻只有一个线程能写Hashtable,因此也导致了Hashtable 在写入时会比较慢

三 ,LinkedHashMap是HashMap的子类,保存了记录的插入顺序,遍历时,先得到数据肯定是先插入的,遍历的速度比HashMap慢,但当HashMap容量很大,实际数据较少时,遍历起来可能会比LinkedHashMap慢,因为LinkedHashMap的遍历速度只和实际数据有关,和容量无关,而HashMap的遍历速度和他的容量有关

四 ,TreeMap实现SortMap接口,能够把保存的记录按照键排序,默认是升序,所以遍历TreeMap时,得到的数据时排过序的

五、HashMap,TreeMap,LinkedHashMap三者使用场景


以及他们的相同点和不同点

1,相同点:

HashMap,LinkedHashMap,TreeMap都属于集合Map接口的子类。都是键值对集合。线程都不安全,效率高。

2,不同点:

(1)HashMap键是哈希表结构,可以保证键的唯一性,key能null,值也可为null。

(2)LinkedHashMap是HashMap的子类,内部依赖哈希表和链表列实现。由hash保证键的唯一性,由LinkedList保证有序性(存取顺序一致)。key能为Null,value也能为null。

(3)TreeMap类,键是红黑树结构,可以保证键的排序(自然排序),并且不能重复。key不能为null,value可以为null

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!