美文网首页
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