ArrayList和linkList,hashMap和hashtable区别

一,ArrayList与linkList区别

     增加:ArrayList的性能要比LinkedList的性能高  数据越大差距越明显   
     插入:与删除相同
    删除:删除靠后面的数据时ArrayList的性能要比LinkedList的性能高,但是删除靠前的数据时LinkedList不变,ArrayList性能变   差,数据越靠前ArrayList性能越差
     修改:ArrayList比LinkedList快

二,hashMap的底层原理:

      1. HashMap:   存储时,如果key相同,后面的会把前面的替换 并返回被替换的值,如果没有替换则返回null
Hash表本身也叫Entry数组,Entry是一个单项链表也是Hash桶
加载因子: 是一个float类型的参数,扩容界限等于加载因子乘与当前容量,加载因子确定什么时候扩容。加载因子越大空间利用率越高性能越低,反之!

     2. hashMap: put方法

           hashMap一般使用string作为key值,因为string已经重写了hashcode 和equals方法,所以,当key值相等时,新的值会重新覆盖旧的值

    hashMap如果使用对象作为key值,在对象类中必须重写hashcode和equals方法,才能达到当key值相等时,新的值会重新覆盖旧的值,如果不重写,两个值都会产生

    3.hash涉及知识:

         hash算法:不同输入尽可能有不同的输出也成散列算法,好的算法发生hash碰撞会减少
         hash碰撞:不同的输入有相同的输出   发生碰撞越小效率越高


你可能感兴趣的:(集合类)