Java Map 接口

简介: Map接口中键和值一一映射. 可以通过键来获取值。 给定一个键和一个值,你可以将该值存储在一个Map对象. 之后,你可以通过键来访问对应的值。 当访问的值不存在的时候,方法就会抛出一个NoSuchElementException异常. 当对象的类型和Map里元素类型不兼容的时候,就会抛出一个 ClassCastException异常。

 

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<String, Object> m1 = new HashMap<String, Object>();
        Map<String, Object> m2 = new HashMap<String, Object>();
        
        m1.put("aaa", "bb");
        m1.put("ab", "cccc");
        m1.put("ddd", "ddd");
        System.out.println(m1);
        System.out.println("------------1---------------");
        System.out.println(m1.containsKey("aaa"));
        System.out.println(m1.entrySet());
        System.out.println("aaa".equals(m1.containsKey("aaa")));
        System.out.println("bb".equals(m1.get("aaa")));
        System.out.println(m1.get("aaa").hashCode());
        System.out.println(m1.isEmpty());
        System.out.println(m1.keySet());
        m2.putAll(m1);
        m2.put("222", "222");
        System.out.println(m2);
        m2.remove("222");
        m2.remove("333");
        System.out.println(m2);
        System.out.println(m2.size());
        System.out.println(m2.values());

执行结果:

{aaa=bb, ddd=ddd, ab=cccc}
------------1---------------
true
[aaa=bb, ddd=ddd, ab=cccc]
false
true
3136
false
[aaa, ddd, ab]
{222=222, aaa=bb, ddd=ddd, ab=cccc}
{aaa=bb, ddd=ddd, ab=cccc}
3
[bb, ddd, cccc]

 

目录
相关文章
|
18小时前
|
存储 安全 Java
Java一分钟之-Map接口与HashMap详解
【5月更文挑战第10天】Java集合框架中的`Map`接口用于存储唯一键值对,而`HashMap`是其快速实现,基于哈希表支持高效查找、添加和删除。本文介绍了`Map`的核心方法,如`put`、`get`和`remove`,以及`HashMap`的特性:快速访问、无序和非线程安全。讨论了键的唯一性、`equals()`和`hashCode()`的正确实现以及线程安全问题。通过示例展示了基本操作和自定义键的使用,强调理解这些概念对编写健壮代码的重要性。
4 0
|
18小时前
|
存储 安全 Java
Java一分钟之-集合框架进阶:Set接口与HashSet
【5月更文挑战第10天】本文介绍了Java集合框架中的`Set`接口和`HashSet`类。`Set`接口继承自`Collection`,特征是不允许重复元素,顺序不确定。`HashSet`是`Set`的实现,基于哈希表,提供快速添加、删除和查找操作,但无序且非线程安全。文章讨论了`HashSet`的特性、常见问题(如元素比较规则、非唯一性和线程安全性)以及如何避免这些问题,并提供了代码示例展示基本操作和自定义对象的使用。理解这些概念和注意事项能提升代码效率和可维护性。
8 0
|
18小时前
|
存储 安全 算法
Java一分钟之-Java集合框架入门:List接口与ArrayList
【5月更文挑战第10天】本文介绍了Java集合框架中的`List`接口和`ArrayList`实现类。`List`是有序集合,支持元素重复并能按索引访问。核心方法包括添加、删除、获取和设置元素。`ArrayList`基于动态数组,提供高效随机访问和自动扩容,但非线程安全。文章讨论了三个常见问题:索引越界、遍历时修改集合和并发修改,并给出避免策略。通过示例代码展示了基本操作和安全遍历删除。理解并正确使用`List`和`ArrayList`能提升程序效率和稳定性。
6 0
|
20小时前
|
Java
【JAVA进阶篇教学】第四篇:JDK8中函数式接口
【JAVA进阶篇教学】第四篇:JDK8中函数式接口
|
20小时前
|
存储 Java
【JAVA基础篇教学】第十篇:Java中Map详解说明
【JAVA基础篇教学】第十篇:Java中Map详解说明
|
1天前
|
存储 安全 Java
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
|
1天前
|
Java
Java一分钟之-抽象类与接口的应用场景
【5月更文挑战第9天】Java中,抽象类和接口用于实现多态和抽象。抽象类不能实例化,提供部分实现和定义模板;接口包含无实现的抽象方法,用于定义行为规范和解耦合。选择时,关注行为用接口,部分实现用抽象类。注意抽象类的`final`和`static`方法、接口冲突等问题,明确设计目标,适度抽象,遵循接口设计原则,以提高代码质量。
10 1
|
1天前
|
Java
Java一分钟之-多态性:理解重写与接口
【5月更文挑战第9天】本文介绍了Java中的多态性,主要通过方法重写和接口实现。重写允许子类根据实际类型执行不同实现,关键点包括方法签名相同、访问权限不降低以及final、static和abstract方法不可重写。接口是抽象类型,包含抽象方法,提供另一种多态性实现。常见问题包括混淆重载与重写、不理解动态绑定以及滥用接口。为避免问题,需明确重写目的、合理设计接口,并在使用多态时注意类型检查。多态性是提升代码质量和灵活性的关键。
8 1
|
4天前
|
Java 开发者
在Java中,接口和超类在多态性中扮演着重要的角色
Java中的接口和超类支持多态性,接口作为规范,允许多继承和回调机制;超类提供基类,实现代码重用和方法重写,两者共同促进代码的灵活性和可维护性。
25 10
|
4天前
|
Java
接口在增强Java代码的灵活性方面起着关键作用
Java接口增强代码灵活性,实现多态性、解耦、多继承和扩展性。通过接口,类可隐藏实现细节,实现抽象化,促进模块化和维护性。接口定义方法,允许不同类实现,减少依赖,便于测试和修改。同时,接口提供多继承解决方案,使代码更具扩展性,易于添加新功能。
22 4