简述List、Set、Map类型的集合的各自特点

转载于https://blog.csdn.net/m0_37668335/article/details/80556862?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

JAVA集合主要分为三种类型:

Set(集) List(列表) Map(映射) Collection 接口

Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List)的通用方法。 Set 和List 都继承了Conllection,Map没有

Set(集合): Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象。 set接口主要实现了两个实现类:
HashSet : HashSet类按照哈希算法来存取集合中的对象,存取速度比较快
TreeSet : TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。

List(列表): List的特征是其元素以线性方式存储,集合中可以存放重复对象。 List接口主要实现类包括:
ArrayList() : 代表长度可以改变得数组。可以对元素进行随机的访问,向ArrayList()中插入与与删除元素的速度慢。
LinkedList(): 在实现中采用链表数据结构。插入和删除速度快,访问速度慢。
对于List的随机访问来说,就是只随机来检索位于特定位置的元素。 List 的 get(int index) 方法放回集合中由参数index指定的索引位置的对象,下标从“0” 开始。

Map(映射): Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。 Map没有继承于Collection接口 从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。

Map集合中的键对象不允许重复,也就说,任意两个键对象通过equals()方法比较的结果都是false. 但是可以将任意多个键独享映射到同一个值对象上。

总结: List按对象进入的顺序保存对象,不做排序或编辑操作。Set对每个对象只接受一次,并使用自己内部的排序方法(通常,你只关心某个元素是否属于Set,而不关心它的顺序–否则应该使用List)。Map同样对每个元素保存一份,但这是基于"键"的,Map也有内置的排序,因而不关心元素添加的顺序。如果添加元素的顺序对你很重要,应该使用 LinkedHashSet或者LinkedHashMap.

简述List、Set、Map类型的集合的各自特点相关推荐

  1. 【Flutter】Dart 数据类型 Map 类型 ( 创建 Map 集合 | 初始化 Map 集合 | 遍历 Map 集合 )

    文章目录 一. Dart 数据类型 Map 类型 二. Map 类型初始化并赋值 1. 创建 Map 对象同时进行初始化操作 2. 先创建 Map 对象再进行赋值 三. Map 集合遍历 1. 使用 ...

  2. el表达式遍历list中的list_EL表达式获取map和list集合中的值 | 学步园

    Map的每个对象以key=value的形式给出 当forEach tag的item属性中的表达式的值是java.util.Map时,在var中命名的变量被设置为类型是java.util.Map.Ent ...

  3. mybatis当输入参数有多个时的解决方案,Map类型,索引引用输入参数,map输出

    Map类型在映射文件中的使用 当输入参数有多个时的解决方案 通过输入参数的索引引用输入参数 需求:通过姓名和地址查询用户信息 输入参数: 姓名 地址 开发: [1]编写接口 [2]映射文件的编写 [3 ...

  4. 通用Excel表格导出(Map类型数据导出为表格)

    背景 为提升代码开发效率,项目使用了通用查询(动态数据表.动态条件.动态列名等),各表查询通过同一个页面展现,前端通过获取路径上的表名调用同一个后端控制器--动态获取到查询条件.数据列名.不同表数据等 ...

  5. 笔记整理4----Java语言高级(四)16 JAVA常用API-高级+17 泛型与常见数据结构+18 Map与Set集合+19 异常处理+20 IO流-高级

    16 JAVA常用API-高级+17 泛型与常见数据结构+18 Map与Set集合+19 异常处理+20 IO流-高级 第05天 API 今日内容介绍  Object类 & System类 ...

  6. eBPF: 深入探究 Map 类型

    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可. 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权. 内核版本为5.4.119 文章目录 ...

  7. go语言语法基础-map类型

    文章目录 一. 前言 二. map的创建 1. 声明不赋值 1) 语法 2) 使用 make() 函数 开辟空间赋值 a. make的语法 b. 案例源码 2. 声明并赋值 三. map的增删改查 1 ...

  8. c语言重定义不同的基类型_简述usb连接器输出类型定义和不同环境下的用法

    "简述usb连接器输出类型定义和不同环境下的用法"由仁昊伟业http://renhotec.cn为您整理,采购连接器,上仁昊伟业. USB连接器是各种电子设备连接需求的实用设备,同 ...

  9. java中map转为json数据_Java技术-将java中Map类型数据转化为json数据并以Ajax形式返回...

    Java技术-将java中Map类型数据转化为json数据并以Ajax形式返回html 1.自定义工具类(简单易用)-下面是我写的一个简单的工具类前端 package com.test.util; i ...

最新文章

  1. 【面试被虐】如何只用2GB内存从20亿,40亿,80亿个整数中找到出现次数最多的数?...
  2. 分布式文件系统—HDFS—核心设计
  3. Python基础小结
  4. HTML+CSS+JS实现canvas仿ps橡皮擦刮卡效果
  5. (一)边缘AI:口罩检测
  6. java将csv导入hdfs_把HDFS里的json数据转换成csv格式
  7. paip.51cto HTML转码规则
  8. Twaver-HTML5基础学习(32)Network样式andTree样式
  9. 计算机专业本科一批,本科一批招生计划
  10. All clients has disconnected from. You can graceful shutdown now., dubbo version: , current host
  11. 学习平面设计的去哪学,平面设计一般学多久:夏雨老师
  12. 认识ZBrush? 4R7视图区
  13. 嵌入式Linux--U-Boot(四)MMC命令使用
  14. DEDECMS站点内容怎么自动更新到新浪微博
  15. 微信小程序 -- 订阅消息wx.requestSubscribeMessage
  16. 关于TCP乱序和重传的问题
  17. html标签中h4和h5,h5与h4的区别
  18. matlab滤波器滤除低频直流信号,极低频滤波器MATLAB
  19. Java将字符串转化为数组
  20. Atmel Studio 7新建AVR单片机工程

热门文章

  1. 前端学习(1939)vue之电商管理系统电商系统之完成全部功能
  2. 前端学习(1410):多人管理30数据分页
  3. 前端学习(487):css选择器下
  4. spring学习(34):构造函数依赖注入
  5. 第十六期:AWS 瘫痪:DNS 被 DDoS 攻击了 15 个小时
  6. 第三十五期:当我们在讨论CQRS时,我们在讨论些神马?
  7. element-ui中表单验证rules
  8. vue.js 引用背景图 background 无效的3种解决办法
  9. lambda表达式浅析【C++学习笔记】
  10. c语言江宝钏实验六答案,C语言程序设计江宝钏著实验六答案