Map接口(双例集合):

  Map提供了映射关系,存放的元素是以key-value键值对存放的。可以根据key快速的查询value。key不可以重复,value可以重复。

常用实现类:HashMap,Hashtable,LinkedHashMap,TreeMap

常用方法
判断功能
boolean isEmpty():判断map是否为空
boolean containsKey(Object key):判断是否包含某个key
boolean containsValue(Object value):判断是否包含某个value
 
获取功能
int size():返回键值对的个数
V get(Object key):返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null
Set<K> keySet():返回此映射中包含的键的 Set 视图
Collection<V> values():返回此映射中包含的值的 Collection 视图
Set<Map.Entry<K, V>> entrySet():返回此映射中包含的映射关系的 Set 视图
 
添加功能
V put(K key, V value):将指定的值与此映射中的指定键关联(可选操作)。如果此映射以前包含一个该键的映射关系,则用指定值替换旧值,并且返回旧的值。否则返回null
void putAll(Map<? extends K, ? extends V> m):把一组键值对放入到Map中。
 
删除功能
V remove(Object key):删除指定的key对应的键值对,返回被删除的键指定的值
void clear():从此映射中移除所有映射关系
 
遍历方式
方式1:根据键找值
获取所有键的集合
遍历键的集合,获取到每一个键
根据键找值
如:
Set<String> keySet = stus.keySet();
for(String key : keySet){
System.out.println(key +": "+stus.get(key));
}
方式2:根据键值对对象找键和值
获取所有键值对对象的集合
遍历键值对对象的集合,获取到每一个键值对对象
根据键值对对象找键和值
Set<Entry<String, String>> entrySet = stus.entrySet();
for(Entry<String, String> entry : entrySet){
System.out.println(entry.getKey()+" : "+entry.getValue());
}
 
HashMap:
特点:
  1. 不保证映射的顺序
  2. 可以使用null作为键或者值
  3. 线程不安全
  4. 底层使用Hash表来存储数据,默认大小16,负载因子0.75,当hash表的容量超过负载因子的时候开始扩容,扩容为原始容量的2
  5. 扩容时机,元素个数超过threshold的时候。
  6. 最多可以存放的元素个数为1<<30
  7. 执行new HashMap()的时候,并没有初始化table;而是在put的时候,才初始化。
  8. 不允许重复的key

LinkedHashMap:

特点:

  1. 可以排序,注意这里所说的顺序并不是添加的顺序。而是从大到小或者从小到大的顺序。
  2. 保证元素的唯一性

Hashtable:

特点:

1、线程安全,效率低
2、不能将null作为键或者值
3、初始容量为11,负载因子为0.75。超过负载因子*容量开始扩容,扩容为旧的容量*2+1
 
 

Java集合--Map的更多相关文章

  1. Java集合Map接口与Map.Entry学习

    Java集合Map接口与Map.Entry学习 Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs).该接口描述了从不重复的键到值的映射. (1) ...

  2. Java集合——Map接口

    1.定义 Map用于保存存在映射关系<key,value>的数据.其中,key值不能重复(使用equals()方法比较),value值可以重复 2.方法 V  put(key,value) ...

  3. Java集合—Map

    简介 Map用户保存具有映射关系的数据,因此Map集合里保存着两组数,一组值用户保存Map里的key,另一组值用户保存Map里的value,key和value都可以是任何引用类型的数据.Map的key ...

  4. Java集合Map基本方法

    jdk1.7 api中的方法摘要: 参考java集合大全图:https://www.cnblogs.com/xkzhangsanx/p/10889114.html Map为所有Map子类的接口.

  5. java集合——Map

    声明:以下内容都是来自网络总结,将会参考很多,没有声明转载来源. 一.Map接口 1.HashMap HashMap和HashTable的区别:http://blog.csdn.net/shohoku ...

  6. Java集合--Map总结

    转载请注明出处:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3311126 第1部分 Map概括 (01) Map ...

  7. Java集合-----Map详解

          Map与Collection并列存在.用于保存具有映射关系的数据:Key-Value      Map 中的 key 和  value 都可以是任何引用类型的数据      Map 中的 ...

  8. Java集合Map与其子类回顾

    接10月12号昨天的笔记,今天继续回顾集合中的Map集合. 一.集合工具操作类Collections 问题:collection和collections的区别? 1.collection是单列集合的顶 ...

  9. Java集合----Map集合

    Map Map 用于保存具有映射关系的数据,因此 Map 集合里保存着两组值,一组值用于保存 Map 里的 Key,另外一组用于保存 Map 里的 Value Map 中的 key 和 value 都 ...

  10. Java 集合-Map接口和三个子类实现

    2017-10-31 22:05:59 Map 将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. HashMap是基于散列表实现的,插入.删除和定位元素时间复杂度平均能达到O ...

随机推荐

  1. 关于AlertDialog多选框中全选和反选的实现办法

    package mobile.android.ch07.multi.choice.dialog; import android.app.Activity; import android.app.Ale ...

  2. Day6 - B - 采花 HYSBZ - 2743

    萧芸斓是Z国的公主,平时的一大爱好是采花.今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花 .花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一排的,以便于公主采花.公 ...

  3. 困惑我的x++和++x;

    刚学习C语言时X++和++X非常不解 目前有了新的领悟 1.X++ int x=0; int z=x++; 此时z?x? 这个问题可以分两步思考 第一步:先把x的值赋予z,此时z=x=0; 第二步:x ...

  4. Excel中列宽、行高与像素的换算公式

    DPI             Scale      ColumnWidth             RowHeight 72dpi           75%       cw=(pix-5)/6  ...

  5. iPad适配tabBarController

    iPad的tabBarController会在底部居中显示,根据不同的需求可能需要把tabBarItem均匀分布显示,具体修改如下 self.tabBar.itemPositioning = UITa ...

  6. SpringBoot-数据库连接信息配置

    SpringBoot-数据库连接信息配置 SpringBoot-数据库连接信息配置 ​ 在SpringBoot中提供了默认的数据库连接器-追光者HikariCP,我们只需要添加jdbc的启动器就会自动 ...

  7. 实验吧-web-Guess Next Session(session简介)

    看代码: <?php session_start(); if (isset ($_GET['password'])) { if ($_GET['password'] == $_SESSION[' ...

  8. Django(八)模型:Mysql8.0日志文件配置开启/关闭、查询

    Mysql日志文件开启.配置.查看 mysql.log是mysql的日志文件,里面记录的对MySQL数据库的操作记录.默认情况下mysql的日志文件没有产生,需要修改mysql的配置文件,步骤如下: ...

  9. POJ 2287 田忌赛马

    Tian Ji -- The Horse Racing Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 17699   Acc ...

  10. 51nod 1065:最小正子段和

    1065 最小正子段和 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  取消关注 N个整数组成的序列a[1],a[2],a[3],-,a[n],从中选出一 ...