hashmap和数组哪个速度快

       Chasel_s  最近去面试遇到了面试官问的很多问题,很多东西可能之后真正被人问过之后才会发现自己学了假的知识,

答对的就不说了,今天栽在java的数据结构上了,面试官今天问了我一个问题,数组和hashmap谁的效率快,为什么?

言归正传下面来解释。 

       很多时候面试一般会问hashmap和hashtable的速度谁快,这个一般面试java的人都会答上来,hashmap牺牲了

线程安全提高了效率,hashtable牺牲了效率换来了线程安全,之前还有一个面试官问了我一个问题,hashmap为什么

线程不安全,其实我是看过hashmap的源码的,我就给他解释源码,你们知道的之中解释是不在点上的,后来我回来

思考了一下发现回答其实很简单hashmap底层维护了一个数组,当多线程的时候对这个数组操作是不安全的。

      下面就说说数组和hashmap谁的速度快,这其实是个坑,我其实当时回答其实对了一半,我说hashmap比数组快,

因为hashmap底层是使用一个链表实现的,所以速度快,很多时候我都是这么的只知其一不知其二,其实这种回答不全,

没错是快但是是在插入和删除的时候,在查询的时候因为数组有下标所以在查询集合中某个元素时,一般都会对数组干拜

下风。

      Chasel_s对数据结构真的不是很懂,因为Chasel_s大学里面数据结构是在大一开的,那是还是菜鸟一枚,根本就没有

学会数据结构,看来以后要花一点时间补补。欢迎大佬们补充和指出问题。

你可能感兴趣的:(hashmap和数组哪个速度快)