Java之map的常见用法讲解与五种循环遍历实例代码理解

网友投稿 435 2022-09-24


Java之map的常见用法讲解与五种循环遍历实例代码理解

目录一、概述:二、Map集合的功能介绍三、map官方总结四、实例五、循环遍历的五种方法

一、概述:

将键映射到值的对象

一个映射不能包含重复的键

每个键最多只能映射到一个值

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> 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 tempMap = new HashMap();

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 entry : tempMap.entrySet()) {

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

String value = entry.getValue().toString();

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

}

System.out.println("");

// 遍历方法三 hashmap keySet() 遍历

System.out.println("方法三");

for (Iterator i = tempMap.keySet().iterator(); i.hasNext();) {

Object obj = i.next();

System.out.println(obj);// 循环输出key

System.out.println("key=" + obj + " value=" + tempMap.get(obj));

}

for (Iterator i = tempMap.values().iterator(); i.hasNext();) {

Object obj = i.next();

System.out.println(obj);// 循环输出value

}

System.out.println("");

// 遍历方法四 treemap keySet()遍历

System.out.println("方法四");

for (Object o : tempMap.keySet()) {

System.out.println("key=" + o + " value=" + tempMap.get(o));

}

System.out.println("11111");

// java如何遍历Map map = new HashMap

// ArrayList>();

System.out.println("java 遍历Map map = new HashMap();");

Map map = new HashMap();

Set keys = map.keySet();

Iterator iterator = keys.iterator();

while (iterator.hasNext()) {

String key = iterator.next();

ArrayList arrayList = map.get(key);

for (Object o : arrayList) {

System.out.println(o + "遍历过程");

}

}

System.out.println("2222");

// 遍历方法五

Map mapList = new HashMap();

for (Map.Entry entry : mapList.entrySet()) {

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

List values = (List) entry.getValue();

for (String value : values) {

System.out.println(key + " --> " + value);

}

}

}

}

// ArrayList>();

System.out.println("java 遍历Map map = new HashMap();");

Map map = new HashMap();

Set keys = map.keySet();

Iterator iterator = keys.iterator();

while (iterator.hasNext()) {

String key = iterator.next();

ArrayList arrayList = map.get(key);

for (Object o : arrayList) {

System.out.println(o + "遍历过程");

}

}

System.out.println("2222");

// 遍历方法五

Map mapList = new HashMap();

for (Map.Entry entry : mapList.entrySet()) {

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

List values = (List) entry.getValue();

for (String value : values) {

System.out.println(key + " --> " + value);

}

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Cisco 851路由器PPPOE拨号配置(亲测)(cisco是什么牌子)
下一篇:MA5680T恢复出厂设置(ma5628如何设置)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~