ArrayList与LinkedList区别

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

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

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

TreeSet特点:唯一、可排序

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

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

总结

List与set区别

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容