list set map存取区别

list set map存取区别在于:1、定义不同;2、数据顺序不同。list是一种有序集合,按照对象进入的顺序保存对象,允许重复对象;set是无序的集合,不是按照对象进入的顺序保存,不可重复;map以键值对的方式存储元素,根据键得到值,所有Map集合的Key是无序不可重复的。

list set map存取区别-Worktile社区

1、定义不同

List和Set是存储单列数据的集合,Map是存储键值对这样的双列数据的集合。

list是一种有序集合,按照对象进入的顺序保存对象,并且允许重复对象,插入多个null值。list查找效率快,但增删效率慢,增删会引起其他元素位置发生改变。

set是无序的集合,不是按照对象进入的顺序保存,不可重复,只允许一个null值出现。set检索元素效率低,而增删效率快,增删不会引起其他元素位置发生改变。

map以键值对的方式存储元素,根据键得到值,所有Map集合的Key是无序不可重复的,key和value都是引用数据类型,存的都是内存的地址。

2、数据顺序不同

List中存储的数据是有顺序的,并且值允许重复;Map中存储的数据是无序的,它的键是不允许重复的,但是值是允许重复的;Set中存储的数据是无顺序的,并且不允许重复,但元素在集合中的位置是由元素的hashcode决定,即位置是固定的(Set集合是根据hashcode来进行数据存储的,所以位置是固定的,但是这个位置不是用户可以控制的,所以对于用户来说set中的元素还是无序的)。

延伸阅读:

什么是列存储?

我们知道,在SQL Server里,Page是数据存储的基本单位,而数据行是实际数据的存储单位,它们从Page Header之后就开始依次存储在Page上。这种按行在Page上存储记录的方式就是行存储。当数据是按单列而不是多行进行连续存储时,就是所谓的列存储。

磁盘的每个Page仅仅存储来自单列的值,而不是整行的值。因此,压缩算法会更加高效,因为它们能够作用于同类型的数据。例如,假定我们有一张有3列数据的表,这3列从左往右依次是int、varchar和bool类型,并且该表有100条(行)记录。对于都是int类型的第一列数据,应用压缩算法是很容易的,同时压缩率也会很高。这也将表明,我们不必访问该表的所有列,仅需访问感兴趣的相关列的子集,这从另一方面来讲,可以减少磁盘的I/O、提升缓存利用率,因此,磁盘存储会被更加高效的利用,就像索引维护一样。

文章标题:list set map存取区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/36487

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年1月31日 下午11:08
下一篇 2023年1月31日 下午11:10

相关推荐

  • 知识交流平台有哪些

    知识交流平台有:一、中国知网;二、知乎;三、喜马拉雅;四、网易云课堂;五、蜻蜓FM;六、得到;七、慕课网。中国知网,始建于1999年6月,是中国核工业集团资本控股有限公司控股的同方股份有限公司旗下的学术平台。 一、中国知网 中国知网,始建于1999年6月,是中国核工业集团资本控股有限公司控股的同方股…

    2023年4月30日
    5700
  • k8s与docker的区别是什么

    k8s与docker的区别在于,k8s的全称 kubernetes。它是一个完整的分布式系统支撑平台,集群管理功能齐全。Docker是一种开放源码的应用容器引擎,允许开发人员将其应用和依赖包打包成可移植的镜像,然后发布到任何流行的 Linux或 Windows机器上,也能实现虚拟化。 一、区别 k8…

    2023年2月18日
    12.6K00
  • 为什么Java坚持多线程不选择协程

    之所以Java坚持多线程不选择协程,是因为虽然协程是非常值得学习的概念,它是多任务编程的未来,但是Java全力推进这个事情的动力并不大。当我们希望引入协程,不外乎是因为节省资源以及轻量,但Java全力推进这个事情的动力并不大。 协程是非常值得学习的概念,它是多任务编程的未来。但是Java全力推进这个…

    2023年1月27日
    10000
  • 团队协同的意思是什么

    团队协同的意思是:1、团队成员的协作;2、个人目标的达成;3、团队目标的实现;4、组织环境的优化;5、员工与团队之间的协作氛围和文化。团队协同是指将成员(团队成员)的工作有机地结合起来,发挥各自优点和作用。 团队协同的意思是什么 团队协同是指将成员(团队成员)的工作有机地结合起来,发挥各自优点和作用…

    2022年11月14日
    29900
  • 瀑布开发模型的各个阶段有哪些

    瀑布开发模型有六个阶段,分别是:1、软件计划;2、需求分析;3、软件设计;4、程序编码;5、软件测试;6、运行维护。瀑布模型是应用最广泛,且最早出现的系统的项目管理模型,后续的模型很多都是在此基础上演变而成的。 1、软件计划 通过市场调研以及和需求方的沟通,确定项目目标,进行可行性研究,以确定项目是…

    2022年11月16日
    92400
  • 会展项目管理的方法有哪些

    会展项目管理的方法有:一、瀑布模型;二、敏捷模型;三、增量模型;四、融合模型。瀑布模型是传统的项目管理方法,也被称为“线性顺序模型”。在这个模型中,项目被分为一系列顺序阶段,每个阶段的工作必须在下一个阶段开始之前完成。 一、瀑布模型 瀑布模型是传统的项目管理方法,也被称为“线性顺序模型”。在这个模型…

    2023年4月30日
    1800
  • 项目一览怎么做看板管理

    做看板管理的步骤是:1、确定看板的列;2、创建任务卡片;3、移动任务卡片;4、可视化展示。首先,我们需要确定看板的列。在项目一览中,我们可以将列分为待办、进行中和已完成三个部分。 1、确定看板的列 首先,我们需要确定看板的列。在项目一览中,我们可以将列分为待办、进行中和已完成三个部分。待办列用于列出…

    2023年2月28日
    4700
  • 商业银行如何提升研发管理效率

    要做到:立足新发展阶段,建立数字化转型研发管理体系;优化研发管理流程,打造集中统一的协作平台;推动业务与科技深度融合,持续提升研发协作成效。数字化转型是以“ 数据、技术”双要素为驱动,推动业务模式和管理模式的创新和变革。 立足新发展阶段,建立数字化转型研发管理体系 数字化转型是以“ 数据、技术”双要…

    2023年3月30日
    2500
  • C语言的宏与C++里面的模板有什么区别

    C语言的宏与C++里面的模板的区别:1、概念不同;2、语法不同;3、应用不同。概念不同是指C语言的宏定义是C语言本身的组成部分且不能直接对它们进行编译,而C++里面的模板允许程序员定义一种适用于不同类型的对象的行为。 一、C语言的宏与C++里面的模板的区别 1、概念不同 C语言的宏:C语言中的宏定义…

    2023年3月31日
    9000
  • 程序的编译与解释有什么区别

    程序的编译与解释的区别是:1、编译是将源程序翻译成可执行的目标代码,解释程序不产生目标代码;2、解释程序可跨平台使用,编译程序跨平台性不好;3、解释程序可以随时修改立刻生效,编译程序不行;4、解释程序运行效率低,编译程序执行速度快。 1、编译是将源程序翻译成可执行的目标代码,解释程序不产生目标代码 …

    2023年1月27日
    4200

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部