博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Map小结
阅读量:6235 次
发布时间:2019-06-22

本文共 5933 字,大约阅读时间需要 19 分钟。

嵌套类摘要
static interface <,>
          映射项(键-值对)。

 

方法摘要
 void ()
          从此映射中移除所有映射关系(可选操作)。
 boolean ( key)
          如果此映射包含指定键的映射关系,则返回 true
 boolean ( value)
          如果此映射将一个或多个键映射到指定值,则返回 true
 <<,>> ()
          返回此映射中包含的映射关系的 视图。
 boolean ( o)
          比较指定的对象与此映射是否相等。
  ( key)
          返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null
 int ()
          返回此映射的哈希码值。
 boolean ()
          如果此映射未包含键-值映射关系,则返回 true
 <> ()
          返回此映射中包含的键的 视图。
  ( key,  value)
          将指定的值与此映射中的指定键关联(可选操作)。
 void (<? extends ,? extends > m)
          从指定映射中将所有映射关系复制到此映射中(可选操作)。
  ( key)
          如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
 int ()
          返回此映射中的键-值映射关系数。
 <> ()
          返回此映射中包含的值的 视图。

   

方法详细信息

size

int size()
返回此映射中的键-值映射关系数。如果该映射包含的元素大于
Integer.MAX_VALUE,则返回
Integer.MAX_VALUE

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

isEmpty

boolean isEmpty()
如果此映射未包含键-值映射关系,则返回
true

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

containsKey

boolean containsKey( key)
如果此映射包含指定键的映射关系,则返回
true。更确切地讲,当且仅当此映射包含针对满足
(key==null ? k==null : key.equals(k)) 的键
k 的映射关系时,返回
true。(最多只能有一个这样的映射关系)。

参数:
key - 测试是否存在于此映射中的键
返回:
如果此映射包含指定键的映射关系,则返回
true
抛出:
- 如果该键对于此映射是不合适的类型(可选)
- 如果指定键为 null 并且此映射不允许 null 键(可选)

containsValue

boolean containsValue( value)
如果此映射将一个或多个键映射到指定值,则返回
true。更确切地讲,当且仅当此映射至少包含一个对满足
(value==null ? v==null : value.equals(v)) 的值
v 的映射关系时,返回
true。对于大多数
Map 接口的实现而言,此操作需要的时间可能与映射大小呈线性关系。

参数:
value - 测试是否存在于此映射中的值
返回:
如果此映射将一个或多个键映射到指定值,则返回
true
抛出:
- 如果该值对于此映射是不合适的类型(可选)
- 如果指定值为 null 并且此映射不允许 null 值(可选)

get

get( key)
返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回
null

更确切地讲,如果此映射包含满足 (key==null ? k==null : key.equals(k)) 的键 k 到值 v 的映射关系,则此方法返回 v;否则返回 null。(最多只能有一个这样的映射关系)。

如果此映射允许 null 值,则返回 null 值并不一定 表示该映射不包含该键的映射关系;也可能该映射将该键显示地映射到 null。使用 操作可区分这两种情况。

参数:
key - 要返回其关联值的键
返回:
指定键所映射的值;如果此映射不包含该键的映射关系,则返回
null
抛出:
- 如果该键对于此映射是不合适的类型(可选)
- 如果指定键为 null 并且此映射不允许 null 键(可选)

put

put( key,       value)
将指定的值与此映射中的指定键关联(可选操作)。如果此映射以前包含一个该键的映射关系,则用指定值替换旧值(当且仅当 返回
true 时,才能说映射
m 包含键
k 的映射关系)。

参数:
key - 与指定值关联的键
value - 与指定键关联的值
返回:
以前与
key 关联的值,如果没有针对
key 的映射关系,则返回
null。(如果该实现支持
null 值,则返回
null 也可能表示此映射以前将
null
key 关联)。
抛出:
- 如果此映射不支持
put 操作
- 如果指定键或值的类不允许将其存储在此映射中
- 如果指定键或值为 null,并且此映射不允许 null 键或值
- 如果指定键或值的某些属性不允许将其存储在此映射中

remove

remove( key)
如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。更确切地讲,如果此映射包含从满足
(key==null ? k==null :key.equals(k)) 的键
k 到值
v 的映射关系,则移除该映射关系。(该映射最多只能包含一个这样的映射关系。)

返回此映射中以前关联该键的值,如果此映射不包含该键的映射关系,则返回 null

如果此映射允许 null 值,则返回 null 值并不一定 表示该映射不包含该键的映射关系;也可能该映射将该键显示地映射到 null

调用返回后,此映射将不再包含指定键的映射关系。

参数:
key - 从映射中移除其映射关系的键
返回:
以前与
key 关联的值;如果没有
key 的映射关系,则返回
null
抛出:
- 如果此映射不支持
remove 操作
- 如果该键对于此映射是不合适的类型(可选)
- 如果指定键为 null 并且此映射不允许 null 键(可选)

putAll

void putAll(
 m)
从指定映射中将所有映射关系复制到此映射中(可选操作)。对于指定映射中的每个键
k 到值
v 的映射关系,此调用等效于对此映射调用一次 。如果正在进行此操作的同时修改了指定的映射,则此操作的行为是不确定的。

参数:
m - 要存储在此映射中的映射关系
抛出:
- 如果此映射不支持
putAll 操作
- 如果指定映射中的键或值的类不允许将其存储在此映射中
- 如果指定映射为 null,或者此映射不允许 null 键或值,并且指定的映射包含 null 键或值
- 如果指定映射中的键或值的某些属性不允许将其存储在此映射中

clear

void clear()
从此映射中移除所有映射关系(可选操作)。此调用返回后,该映射将为空。

抛出:
- 如果此映射不支持
clear 操作

keySet

<> keySet()
返回此映射中包含的键的 视图。该 set 受映射支持,所以对映射的更改可在此 set 中反映出来,反之亦然。如果对该 set 进行迭代的同时修改了映射(通过迭代器自己的
remove 操作除外),则迭代结果是不确定的。set 支持元素移除,通过
Iterator.remove
Set.remove
removeAll
retainAll
clear 操作可从映射中移除相应的映射关系。它不支持
add
addAll 操作。

返回:
此映射中包含的键的 set 视图

values

<> values()
返回此映射中包含的值的 视图。该 collection 受映射支持,所以对映射的更改可在此 collection 中反映出来,反之亦然。如果对该 collection 进行迭代的同时修改了映射(通过迭代器自己的
remove 操作除外),则迭代结果是不确定的。collection 支持元素移除,通过
Iterator.remove
Collection.remove
removeAll
retainAll
clear 操作可从映射中移除相应的映射关系。它不支持
add
addAll 操作。

返回:
此映射中包含的值的 collection 视图

entrySet

<<,>> entrySet()
返回此映射中包含的映射关系的 视图。该 set 受映射支持,所以对映射的更改可在此 set 中反映出来,反之亦然。如果对该 set 进行迭代的同时修改了映射(通过迭代器自己的
remove 操作,或者通过对迭代器返回的映射项执行
setValue 操作除外),则迭代结果是不确定的。set 支持元素移除,通过
Iterator.remove
Set.remove
removeAll
retainAll
clear 操作可从映射中移除相应的映射关系。它不支持
add
addAll 操作。

返回:
此映射中包含的映射关系的 set 视图

equals

boolean equals( o)
比较指定的对象与此映射是否相等。如果给定的对象也是一个映射,并且这两个映射表示相同的映射关系,则返回
true。更确切地讲,如果
m1.entrySet().equals(m2.entrySet()),则两个映射
m1
m2 表示相同的映射关系。这可以确保
equals 方法在不同的
Map 接口实现间运行正常。

覆盖:
中的
参数:
o - 要与此映射进行相等性比较的对象
返回:
如果指定的对象等于此映射,则返回
true
另请参见:
,

hashCode

int hashCode()
返回此映射的哈希码值。映射的哈希码定义为此映射
entrySet() 视图中每个项的哈希码之和。这确保
m1.equals(m2) 对于任意两个映射
m1
m2 而言,都意味着
m1.hashCode()==m2.hashCode(),正如 常规协定的要求。

覆盖:
中的
返回:

此映射的哈希码值

另请参见:
, ,

具体实例:

/*每个学生都有对应的归属地;学生是student,归属地是String学生的属性:姓名和年龄保证学生的唯一性1.描述学生2.定义map容器,将学生作为键,地址作为值存入3.获取map集合元素*/import java.util.*;class maptest {	public static void main(String[] args) 	{		Map
map = new HashMap
();//定义map容器,将学生作为键,地址作为值存入 map.put(new student("a1",24),"xian"); map.put(new student("a2",26),"beijing"); map.put(new student("a1",24),"beijing"); map.put(new student("a1",24),"xian"); //第一种取出方法 Set
keyset = map.keySet(); for(Iterator
it = keyset.iterator();it.hasNext();) { student student = it.next(); String address = map.get(student); sop(student+","+address); } //第二种取出方式 Set
> entryset = map.entrySet(); for(Iterator
> iter = entryset.iterator();iter.hasNext();) { Map.Entry
stu = iter.next(); student student1 = stu.getKey(); String address = stu.getValue(); sop(student1+","+address); } } public static void sop(Object obj) { System.out.println(obj); }}class student implements Comparable
//描述学生,可能存入二叉树,接入Comparable接口判断顺序{ private String name; private int age; student(String name,int age) { this.name = name; this.age = age; } public int compareTo(student s)//按姓名排序判断 { int num = new Integer(this.age).compareTo(new Integer(s.age)); if(num==0) return this.name.compareTo(s.name); return num; } public int hashCode()//有可能存到HashSet集合里,需要复写hasCode方法 { return name.hashCode()+age*3; } public boolean equal(Object obj) { if(!(obj instanceof student)) throw new ClassCastException("不是学生");//不是学生,抛出异常 student s = (student)obj; return this.name.equals(s.name)&&this.age==s.age; } public String getName() { return name; } public int getAge() { return age; } public String toString() { return name+","+age; }}

转载于:https://www.cnblogs.com/chaoyu/p/6436983.html

你可能感兴趣的文章
error LNK2001: 无法解析的外部符号 __CrtDbgReport
查看>>
【多线程】的简单理解&进程 and【你的电脑是几核的?】
查看>>
# 2017-2018-1 20155224 《信息安全系统设计基础》第七周学习总结
查看>>
scikit-learn预处理实例之一:使用FunctionTransformer选择列
查看>>
邮件客户端导入邮件通讯录地址薄
查看>>
Centos 7配置LAMP
查看>>
tomcat7 1000并发量配置 tomcat7配置优化
查看>>
oracle 11g jdbc jar包在哪个文件目录
查看>>
Ocelot简易教程(四)之请求聚合以及服务发现
查看>>
C# 6.0新特性
查看>>
MySQL数据库的几种常见高可用方案
查看>>
java数组复制的几种常见用法
查看>>
去哪网实习总结:JavaWeb中文传參乱码问题的解决(JavaWeb)
查看>>
Xeon Phi之MIC编程知识点
查看>>
jigloo安装和介绍
查看>>
php monolog 的写日志到unix domain socket 测试终于成功
查看>>
【转】JSP中的9大隐藏对象
查看>>
荆慕瑶
查看>>
bilibili携手WeTest,保障视频类应用优质适配体验
查看>>
无线应用安全剖析
查看>>