List Set Map各自实现类区别以及底层原理和实现 最新总结

List Set Map的区别

  1. 结构不同
    List 和 Set 是存储单列数据的集合,Map 是存储键和值这样的双列数据的集合;List 中存储的数据是有顺序,并且允许重复;Map 中存储的数据是没有顺序的,其键是不能重复的,它的值是可以有重复的,Set 中存储的数据是无序的,且不允许有重复,但元素在集合中的位置由元素的 hashcode 决定,位置是固定的(Set 集合根据 hashcode 来进行数据的存储,所以位置是固定的,但是位置不是用户可以控制的,所以对于用户来说 set 中的元素还是无序的);

  2. 实现类
    List 接口有三个实现类 : 1、LinkedList 2、ArrayList 3 、Vector
    Map 接口有四个实现类:1、HashMap 2、Hashtable 3、TreeMap 4、LinkedHashMap
    Set 接口有两个实现类:1、HashSet 2、TreeSet

  3. 区别
    List 集合中对象按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象,例如通过list.get(i)方法来获取集合中的元素;Map 中的每一个元素包含一个键和一个值,成对出现,键对象不可以重复,值对象可以重复;Set 集合中的对象不按照特定的方式排序,并且没有重复对象,但它的实现类能对集合中的对象按照特定的方式排序,例如 TreeSet 类,可以按照默认顺序,也可以通过实现 Java.util.Comparator接口来自定义排序方式。

  4. 实现接口不同
    Set 和List都实现了Collection 父接口,而map没有

List三个子类的区别
HashMap 和 HashTable 的区别
HashSet 和 TreeSet的区别
并发集合和普通集合以及同步集合的区别
数组和链表的概念区别以及应用场景

Collection 和 Map 的集成体系


List Set Map的区别相关推荐

  1. [JS] for-each和map()的区别

    先说下for-each与for-of还有for-in的区别. for-of和for-in都是对对象操作的,而for-each和map()是对数组进行操作的. for-in的使用:对于一个数组里的每一个 ...

  2. JS数组中 forEach() 和 map() 的区别

    JS数组中 forEach() 和 map() 的区别 Array中 Array.forEach()和 Array.map()方法之间的区别. forEach()和map()方法通常用于遍历Array ...

  3. C++中的hash_map和map的区别

    1)为什么需要hash_map /* 例如: 我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改: 岳不群-华山派掌门人,人称君子剑 张三丰-武当掌门人,太极拳创始人 东方不败-第一高手,葵 ...

  4. 浅谈Java中的Set、List、Map的区别

    就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...

  5. java list set map的区别_Java集合类List/Set/Map的区别和联系

    Java集合类List/Set/Map的区别和联系 一.Array , Arrays Java所有"存储及随机访问一连串对象"的做法,array是最有效率的一种. 1. 效率高,但 ...

  6. stl中unordered_map 和 map的区别 ?

    stl中unordered_map 和 map的区别 目录 一.hash_map与unordered_map 二.unordered_map与map 三.unordered_map与unordered ...

  7. 【重难点】【Java集合 02】Set、List、Map 的区别、常见的线程安全的集合类、Collection 为什么只能在 Iterator 中删除元素

    [重难点][Java集合 02]List.Set.Map 的区别.常见的线程安全的集合类.Collection 为什么只能在 Iterator 中删除元素 文章目录 [重难点][Java集合 02]L ...

  8. Java基础学习总结(29)——浅谈Java中的Set、List、Map的区别

    Java中的Set,List,Map的区别,对JAVA的集合的理解是相对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操作数目不固定的一 ...

  9. Java基础知识Set、List、Map的区别

    就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是相对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...

最新文章

  1. Go 学习笔记(4)— Go 标识符、数据类型之间转换、布尔型、整型、浮点型、interface 类型
  2. 干!一张图整理了 Python 所有内置异常
  3. POJ 2482 Stars in Your Window(线段树)
  4. html页面发送post请求中文乱码,用XMLHTTP Post/Get HTML页面时的中文乱码问题之完全Script解决方案...
  5. 采集过程中遇到的利器
  6. 复旦大学网络认证linux,复旦大学校园网有线上网认证流程
  7. c/c++游戏编程之用Easyx绘制图片
  8. 个人 OKR 案例,帮助你变得更好
  9. ssl证书申请,springboot部署https
  10. 如何使用Python给自己的头像添加国旗
  11. 壹度婚礼邀请函请帖小程序免费制作
  12. python如何撤销上一步_python代码运行到某一步能返回到前面某一步吗?
  13. python中将数据写入excel
  14. cesium之地图显示坐标、视角高度、比例尺、海拔效果篇
  15. linux下根据关键字批量杀掉进程
  16. 带你简单的了解和学习一下STM32f1精英版(入门级)
  17. python web项目导出zip文件_通过javascript在网页端生成zip压缩包并下载
  18. Java使用LocalDate获取当前日期,前一天日期
  19. 修改 WTK 中仿真器的尺寸
  20. PyTorch实战6:好莱坞明星识别--VGG16

热门文章

  1. 财务审批流程都有哪些步骤呢?
  2. oracle 11g 1033,ORACLE出现错误1033和错误ORA-00600的解决方法
  3. c# combobox集合数据不显示_VBA与数据库解决方案:Recordset记录集合的动态查询,并显示结果...
  4. Auto Lisp 标注子样式_FAIR 开放大规模细粒度词汇级标记数据集 LVIS,连披萨里的菠萝粒都能完整标注...
  5. mysql查询语句在哪里编写_mysql编写语句:更新查询
  6. BUUCTF(pwn)铁人三项(第五赛区)_2018_rop
  7. Python中的eval(),exec()以及其相关函数
  8. Python中的条件语句和循环语句
  9. Python笔记:日期时间获取与转换
  10. python与rpc服务