前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java中 List,Set,Map有什么具体区别?

java中 List,Set,Map有什么具体区别?

原创
作者头像
用户8870853
修改2021-07-27 11:08:12
4150
修改2021-07-27 11:08:12
举报
文章被收录于专栏:用户8870853的专栏

List,Set,Map都是接口

List、Set是继承与Collection接口,Map是键值对组成的集合

List:有序可重复

ArraryList是List的其中一个实现类,我们常用的集合,底层是动态数组,它可以存储null值和任何类型的数据;他的初始化大小在源码中是private static final int DEFAULT_CAPACITY = 10;该集合是自动扩容;它是线程不安全的,支持随机访问

LinkList是List的其中一个实现类,底层是双向的链表,他不仅有ArraryList的基本操作还有get,remove,insert方法;但是他不能随机访问,所以查询的速度比ArraryList慢,因为他的底层是链表,所以在增删方面的速度远远大于ArraryList

Vector是List的其中一个实现类,跟ArraryList差不多,ArraryList有的操作他都有,底层是动态数组,但是他是同步的,意思就是他是线程安全的

Set:无序不重复

HashSet可以说是在查询方面速度是最快的集合,他的内部原理是HashCode,允许存储有且只有一个null值,元素的顺序是由哈希码来决定,不保证迭代顺序

TreeSet的内部原理是采用二叉树,不允许存储null值,元素的自然顺序排序

Map:保证元素的一对一关系

HashMap内部是以哈希表的数据结构实现,该集合是为了快速查询设计的,内部有一个hash数组,允许存储null值;该集合是线程不安全的

HashTable的实现原理和HashMap一样,不允许存储null值,是线程安全的集合

TreeMap的内部是一个有序的散列表,底层是我们比较恐怖的红黑树

个人理解,有错误请指出,一起改正

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • List:有序可重复
  • Set:无序不重复
  • Map:保证元素的一对一关系
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档