Map

以键值对的形式

将键映射到值得对象。一个映射不能包含重复的键,每个键最多只能映射一个值。

常用的有三个子类实现了map接口:map的存在是为了快速查找,拖过键找到值,所以键值是不可能重复的。

hashMap 和hashtable:两者都是hash结构的,hashmap线程是不安全的允许键值对为null,hashtable线程是安全的不允许键值对为null,两者的其他属性是一样的,所以两者的使用要看具体的情况而定。

treemap:底层是二叉树的接口。线程不同步,可用于给Map集合中的键进行排序,虽然说有些集合是无序的,但是子类个别的也是按照另一种方式进行了排序,只不过不符合我们日常的排序方式。是按照某种规则进行的。

三者的关系:

Map中元素,可以将key序列、value序列单独抽取出来。
使用keySet()抽取key序列,将map中的所有keys生成一个Set。
使用values()抽取value序列,将map中的所有values生成一个Collection。

为什么一个生成Set,一个生成Collection?那是因为,key总是独一无二的,value允许重复

Set

首先是一个无序不可重复的集合,无序指的是不是按照放入顺序排序,但不是真的无序。Set还有两个子类,一个是hashSet,还有一个是继承了SortedSet接口的TreeSet。

hashSet的底层是hashmap,他有着hashmap中键的特性,那就是,无序,不可重复性,

treeset实现了sortset接口,sortedset有排序能力,也就意味着treeset也有着排序的能力,他是使用二叉树进行排序的。

List

这是一个有序可重复的集合。

list接口也有两个子类,一个是arraylist,一个是linkedList,

首先arralist的底层是object[]是一个数组,也就意味着他有着数组的特性,但是和数组相比他比数组灵活,无需设置长度,他是有序的,所以查找块,增删比较慢。

linkedlist:他底层是以链表的形式进行排序的,两个元素之间就如同链子一样前关联,如果进行增删操作的时候,只需要将某个元素替换然后将后边的关联简单修改就可以完成,所以说建议查询用arralist,增删用linkedlist。

Map、Set、List简介相关推荐

  1. STL map常用操作简介

    1.目录 map简介 map的功能 使用map 在map中插入元素 查找并获取map中的元素 从map中删除元素 2.map简介 map是一类关联式容器.它的特点是增加和删除节点对迭代器的影响很小,除 ...

  2. STL学习系列九:Map和multimap容器

    1.map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供基于key的快速检索能力. map中key值是唯一的.集合中的元素按一定的顺 ...

  3. set/multiset/unordered_set和map/multimap/unordered_map基础汇总

    引言 在STL中,有两种很常见的关联容器,分别是set和map,序列容器的元素是按照在容器中的位置来顺序保存和访问的,而关联容器的元素是按关键元素来保存和访问的.所以关联容器经常用在关键字的查找中,效 ...

  4. map和pair的配合使用

    map和pair的配合使用 2011-08-04 15:54:45.0      来源:博客园         作者:佚名 关键词:  map     pair   一.map和pair简介 可以简单 ...

  5. C++STL的map/ multimap容器

    3.9.1 map基本概念 简介: map中所有元素都是pair pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值) 所有元素都会根据元素的键值自动排序 本质: map ...

  6. c++STL容器的Map和multimap

    STL容器的Map和multimap map/multimap的简介 map/multimap对象的默认构造 map的插入与迭代器 迭代器遍历 map对象的拷贝构造与赋值 map的大小 map的删除 ...

  7. 红黑树实现——STL中的map

    From: http://blog.csdn.net/zhongjiekangping/article/details/6934571 红黑树实现--STL中的map [ 2009-07-24 13: ...

  8. Python map 函数 - Python零基础入门教程

    目录 一.前言 二.Python map 函数语法简介 三.Python map 函数实战 1.使用 map 函数 2.map 函数配合 lambda 匿名函数一起使用 四.Python map 函数 ...

  9. Python map 函数 -Python零基础入门教程

    目录 一.前言 二.Python map 函数语法简介 三.Python map 函数实战 1.使用 map 函数 2.map 函数配合 lambda 匿名函数一起使用 四.Python map 函数 ...

  10. python语言map函数及map object at 乱码错误

    文章目录 一.map函数的简介 1.map函数的作用 2.语法格式 3.举例 例1. 例2. 二.报错 一.map函数的简介 1.map函数的作用   对某个序列以给定的函数格式作映射. 2.语法格式 ...

最新文章

  1. TensorFlow 官方文档中文版发布啦(持续维护)
  2. java--面向接口编程
  3. PYPL 二月榜单发布:最受欢迎的编程语言、IDE 和数据库都是哪些
  4. Weblogic监控指标
  5. oracle 上搭建ogg文档,ogg搭建配置实现oracle数据同步到mysql)
  6. jQuery 学习-DOM篇(一):jQuery 创建元素并添加属性
  7. mysql无法连接locahost_完美解决MySQL通过localhost无法连接数据库的问题
  8. 用二次探测法建立hash表
  9. 一键美化python代码
  10. 向量代数:混合积、双重外积与拉格朗日恒等式
  11. 【转】Mac QQ截图保存在哪里?
  12. 【pycharm】复制粘贴快捷键失效
  13. 黑科技解密!实现socket进程间迁移!
  14. IOS微信后台运行时候倒计时暂停问题
  15. win7 x64环境python2.7下装配sulley的注意点-对于Windows Installation原文的几点补充说明
  16. HTML常用标签 选择器
  17. 使用python多线程下载网络小说并结合calibre制作电子书
  18. 网络模拟和分析工具--Mahimahi的安装教程
  19. [从头读历史] 第287节 神之物语 赫拉克勒斯的故事
  20. 暴走:500年金融变局!你能想象人人发资产的世界吗?

热门文章

  1. linux 内核 链表 list_head 使用方法
  2. Nmap源码分析(脚本引擎)
  3. SafeSEH原理与对抗
  4. CMD中使用attrib命令设置文件只读、隐藏属性详解
  5. Android中用Application类实现全局变量
  6. Android/Service详解/实例分析
  7. Django 无法添加新字段,django.db.utils.OperationalError: (1050, Table app already exists)
  8. asp服务器推送消息,asp.net实时向客户端推送消息(SignalRWeb)
  9. c语言大学程序设计题库,黑龙江大学C语言程序设计试题库程序单选
  10. 既是移动硬盘也是微型计算机,既是移动硬盘也是微型计算机 Gnarbox 2.0 SSD让你随时随地备份自己的照片...