概述
1、List和Set的区别
- List集合存储的数据有序可以重复,Set集合存储的数据无序不可以重复。
- List是一个有序的容器,可以保证每一个插入元素的顺序,输出顺序就是输入顺序。
- List可以插入多个null值,而Set只能插入一个null值。
2、List的实现类
- List的常用实现类有ArrayList、LinkedList和Vector。
- ArrayList的底层是数组,LinkedList的底层是链表,前者查询快,后者增删快。因为数组可以根据索引快速访问,而链表添加或者删除不会造成数据的移动。
- Vector是线程安全的,Vector在一些必要的方法上都加了 synchronized关键字。
3、Set的实现类
- Set的常用实现类有HashSet、LinkedHashSet和TreeSet。
- HashSet的底层是哈希表,是数组和链表的结合,根据元素的hashCode值来决定元素的存储位置,比较两个HashSet是否相同,要equals和hashcode都相同,重写hashcode方法可以去除HashSet里面的重复元素。
- LinkedHashSet继承HashSet,也是根据hashcode值决定元素的存储顺序,与此同时用了链表维护元素的次序,同样不允许重复。
- TreeSet的内部实现是红黑树,可以确保元素在排序状态,TreeSet默认采用自然排序,可以通过实现Comparator接口重写compare方法来定制排序。
最后
以上就是外向香氛为你收集整理的List和Set的全部内容,希望文章能够帮你解决List和Set所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复