美文网首页
ArrayList与LinkedList区别

ArrayList与LinkedList区别

作者: fang房 | 来源:发表于2017-06-20 22:46 被阅读0次

    ArrayList的存储方式:是通过数组扩容的方式进行存值的,首先实例化一个一定空间的数组进行存值,当超出数组个数,则实例化一个更大的数组,然后将旧的数组与新增加的元素一起拷贝过来。

    LinkedList的存储方式是通过双向链表的方式进行存储,当存储第一个值时,该对象划分成3段,第一个代表指向上一个,第二个则进行存值,第三个表示下一个指向;当存储第二个对象时,能找到它的上一个指向,第一个对象也能够找到它的下一个指向

    HashSet存储原理,首先传入的数据会根据系统的hash算法的得到一个hash值,然后根据hash值,得到在hash表中的位置,第三步判断该位置上是否有值,没有则插入,如果有值则再次判断传入的值与原值中的地址和内容是否相等,如果相同则不存,否则通过链表方式存储到该位置

    TreeSet特点:唯一、可排序

    存储原理:是通过二叉树的方式进行存值

    当存储第一个元素时,将该值定义为二叉树的根,再次存储数据时跟上一个值比较,如果比根小则放入左边,放入前先判断左子树是否有值,没有则放入,有则与该数判断,如果比根大则判断右子树是否有值,没有则放右边,有则继续判断

    总结

    List与set区别

    list:存储有放入顺序可重复的数据

    set:存储无放入顺序不可重复的数据

    List接口有三个实现类:LinkedList,ArrayList,Vector ,

    Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet

    相关文章

      网友评论

          本文标题:ArrayList与LinkedList区别

          本文链接:https://www.haomeiwen.com/subject/xfdmqxtx.html