Map、Set、List简介
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简介相关推荐
- STL map常用操作简介
1.目录 map简介 map的功能 使用map 在map中插入元素 查找并获取map中的元素 从map中删除元素 2.map简介 map是一类关联式容器.它的特点是增加和删除节点对迭代器的影响很小,除 ...
- STL学习系列九:Map和multimap容器
1.map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供基于key的快速检索能力. map中key值是唯一的.集合中的元素按一定的顺 ...
- set/multiset/unordered_set和map/multimap/unordered_map基础汇总
引言 在STL中,有两种很常见的关联容器,分别是set和map,序列容器的元素是按照在容器中的位置来顺序保存和访问的,而关联容器的元素是按关键元素来保存和访问的.所以关联容器经常用在关键字的查找中,效 ...
- map和pair的配合使用
map和pair的配合使用 2011-08-04 15:54:45.0 来源:博客园 作者:佚名 关键词: map pair 一.map和pair简介 可以简单 ...
- C++STL的map/ multimap容器
3.9.1 map基本概念 简介: map中所有元素都是pair pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值) 所有元素都会根据元素的键值自动排序 本质: map ...
- c++STL容器的Map和multimap
STL容器的Map和multimap map/multimap的简介 map/multimap对象的默认构造 map的插入与迭代器 迭代器遍历 map对象的拷贝构造与赋值 map的大小 map的删除 ...
- 红黑树实现——STL中的map
From: http://blog.csdn.net/zhongjiekangping/article/details/6934571 红黑树实现--STL中的map [ 2009-07-24 13: ...
- Python map 函数 - Python零基础入门教程
目录 一.前言 二.Python map 函数语法简介 三.Python map 函数实战 1.使用 map 函数 2.map 函数配合 lambda 匿名函数一起使用 四.Python map 函数 ...
- Python map 函数 -Python零基础入门教程
目录 一.前言 二.Python map 函数语法简介 三.Python map 函数实战 1.使用 map 函数 2.map 函数配合 lambda 匿名函数一起使用 四.Python map 函数 ...
- python语言map函数及map object at 乱码错误
文章目录 一.map函数的简介 1.map函数的作用 2.语法格式 3.举例 例1. 例2. 二.报错 一.map函数的简介 1.map函数的作用 对某个序列以给定的函数格式作映射. 2.语法格式 ...
最新文章
- TensorFlow 官方文档中文版发布啦(持续维护)
- java--面向接口编程
- PYPL 二月榜单发布:最受欢迎的编程语言、IDE 和数据库都是哪些
- Weblogic监控指标
- oracle 上搭建ogg文档,ogg搭建配置实现oracle数据同步到mysql)
- jQuery 学习-DOM篇(一):jQuery 创建元素并添加属性
- mysql无法连接locahost_完美解决MySQL通过localhost无法连接数据库的问题
- 用二次探测法建立hash表
- 一键美化python代码
- 向量代数:混合积、双重外积与拉格朗日恒等式
- 【转】Mac QQ截图保存在哪里?
- 【pycharm】复制粘贴快捷键失效
- 黑科技解密!实现socket进程间迁移!
- IOS微信后台运行时候倒计时暂停问题
- win7 x64环境python2.7下装配sulley的注意点-对于Windows Installation原文的几点补充说明
- HTML常用标签 选择器
- 使用python多线程下载网络小说并结合calibre制作电子书
- 网络模拟和分析工具--Mahimahi的安装教程
- [从头读历史] 第287节 神之物语 赫拉克勒斯的故事
- 暴走:500年金融变局!你能想象人人发资产的世界吗?
热门文章
- linux 内核 链表 list_head 使用方法
- Nmap源码分析(脚本引擎)
- SafeSEH原理与对抗
- CMD中使用attrib命令设置文件只读、隐藏属性详解
- Android中用Application类实现全局变量
- Android/Service详解/实例分析
- Django 无法添加新字段,django.db.utils.OperationalError: (1050, Table app already exists)
- asp服务器推送消息,asp.net实时向客户端推送消息(SignalRWeb)
- c语言大学程序设计题库,黑龙江大学C语言程序设计试题库程序单选
- 既是移动硬盘也是微型计算机,既是移动硬盘也是微型计算机 Gnarbox 2.0 SSD让你随时随地备份自己的照片...