我是靠谱客的博主 外向香氛,这篇文章主要介绍List和Set,现在分享给大家,希望可以做个参考。

1、List和Set的区别

  1. List集合存储的数据有序可以重复,Set集合存储的数据无序不可以重复。
  2. List是一个有序的容器,可以保证每一个插入元素的顺序,输出顺序就是输入顺序。
  3. 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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部