map的常见用法与五种循环遍历源码---人生四季,寒暑交替,只有学会了“map”才能静心体味生活的悲与喜(1)

文章详细解析了Map和Collection接口在Java中的区别,包括Map的特性和功能如添加、删除、判断、获取和长度操作。同时提到了与MySql相关的学习资料,包括面试专题、性能优化实践和高级知识笔记。
摘要由CSDN通过智能技术生成

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
每个键最多只能映射到一个值

Map接口和Collection接口的不同

Map是双列的,Collection是单列的

Map的键唯一,Collection的子体系Set是唯一的

Map集合的数据结构针对键有效,跟值无关;Collection集合的数据结构是针对元素有效

二、Map集合的功能介绍


a:添加功能

V put(K key,V value):添加元素。这个其实还有另一个功能?替换

如果键是第一次存储,就直接存储元素,返回null

如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值

b:删除功能

void clear():移除所有的键值对元素

V remove(Object key):根据键删除键值对元素,并把值返回

c:判断功能

boolean containsKey(Object key):判断集合是否包含指定的键

boolean containsValue(Object value):判断集合是否包含指定的值

boolean isEmpty():判断集合是否为空

d:获取功能

Set<Map.Entry<K,V>> entrySet(): 返回一个键值对的Set集合

V get(Object key):根据键获取值

Set keySet():获取集合中所有键的集合

Collection values():获取集合中所有值的集合

e:长度功能

int size():返回集合中的键值对的对数

三、map官方总结


Map 接口中键和值一一映射. 可以通过键来获取值。

  • 给定一个键和一个值,你可以将该值存储在一个 Map 对象。之后,你可以通过键来访问对应的值。

  • 当访问的值不存在的时候,方法就会抛出一个 NoSuchElementException 异常。

  • 当对象的类型和 Map 里元素类型不兼容的时候,就会抛出一个 ClassCastException 异常。

  • 当在不允许使用 Null 对象的 Map 中使用 Null 对象,会抛出一个 NullPointerException 异常。

  • 当尝试修改一个只读的 Map 时,会抛出一个 UnsupportedOperationException 异常。

| 序号 | 方法描述 |

| — | — |

| 1 | void clear( )

从此映射中移除所有映射关系(可选操作)。 |

| 2 | boolean containsKey(Object k)

如果此映射包含指定键的映射关系,则返回 true。 |

| 3 | boolean containsValue(Object v)

如果此映射将一个或多个键映射到指定值,则返回 true。 |

| 4 | Set entrySet( )

返回此映射中包含的映射关系的 Set 视图。 |

| 5 | boolean equals(Object obj)

比较指定的对象与此映射是否相等。 |

| 6 | Object get(Object k)

返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。 |

| 7 | int hashCode( )

返回此映射的哈希码值。 |

| 8 | boolean isEmpty( )

如果此映射未包含键-值映射关系,则返回 true。 |

| 9 | Set keySet( )

返回此映射中包含的键的 Set 视图。 |

| 10 | Object put(Object k, Object v)

将指定的值与此映射中的指定键关联(可选操作)。 |

| 11 | void putAll(Map m)

从指定映射中将所有映射关系复制到此映射中(可选操作)。 |

| 12 | Object remove(Object k)

如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。 |

| 13 | int size( )

返回此映射中的键-值映射关系数。 |

| 14 | Collection values( )

返回此映射中包含的值的 Collection 视图。 |

四、实例


下面的例子来解释Map的功能

import java.util.*;

public class CollectionsDemo {

public static void main(String[] args) {

Map m1 = new HashMap();

m1.put(“Zara”, “8”);

m1.put(“Mahnaz”, “31”);

m1.put(“Ayan”, “12”);

m1.put(“Daisy”, “14”);

System.out.println();

System.out.println(" Map Elements");

System.out.print(“\t” + m1);

}

}

以上实例编译运行结果如下:

Map Elements

{Mahnaz=31, Ayan=12, Daisy=14, Zara=8}

五、循环遍历的五种方法


package nc.util.TestClientTools;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import java.util.Set;

/**

  • map集合遍历的五种方法

  • @FileName: CircleMap.java

  • @ClassName: nc.util.TestClientTools.CircleMap

  • @Description: TODO(这里用一句话描述这个类的作用)

  • @author chenfang

  • @email ichenfang163@163.com

  • @date 2017-12-11 下午3:54:24

  • @version V1.0

*/

//循环遍历map的五种方法

public class CircleMap {

public static void main(String[] args) {

Map<String, Integer> tempMap = new HashMap<String, Integer>();

tempMap.put(“a”, 1);

tempMap.put(“b”, 2);

tempMap.put(“c”, 3);

// JDK1.4中

// 遍历方法一 hashmap entrySet() 遍历

System.out.println(“方法一”);

Iterator it = tempMap.entrySet().iterator();

while (it.hasNext()) {

Map.Entry entry = (Map.Entry) it.next();

Object key = entry.getKey();

Object value = entry.getValue();

System.out.println(“key=” + key + " value=" + value);

}

System.out.println(“”);

// JDK1.5中,应用新特性For-Each循环

// 遍历方法二

System.out.println(“方法二”);

for (Map.Entry<String, Integer> entry : tempMap.entrySet()) {

String key = entry.getKey().toString();

《MySql面试专题》

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

《MySql性能优化的21个最佳实践》

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

《MySQL高级知识笔记》

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

文中展示的资料包括:**《MySql思维导图》《MySql核心笔记》《MySql调优笔记》《MySql面试专题》《MySql性能优化的21个最佳实践》《MySq高级知识笔记》**如下图

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

关注我,点赞本文给更多有需要的人
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
img-75D2JRZ7-1714705453189)]

[外链图片转存中…(img-qzRowViG-1714705453189)]

文中展示的资料包括:**《MySql思维导图》《MySql核心笔记》《MySql调优笔记》《MySql面试专题》《MySql性能优化的21个最佳实践》《MySq高级知识笔记》**如下图

[外链图片转存中…(img-0rhPR5yr-1714705453189)]

关注我,点赞本文给更多有需要的人
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值