我是靠谱客的博主 外向香氛,最近开发中收集的这篇文章主要介绍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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部