重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
java.util 最常用的集合类之一是Map ,map提供了一个通用的元素存储方法。 Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。常用到的有hashmap和hashtable。
公司主营业务:做网站、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出苏尼特右免费做网站回馈大家。[@more@]Map 的接口和方法覆盖的方法。 我们将这 Object 的这两个方法覆盖,以正确比较 Map 对象的等价性。
equals(Object o) | 比较指定对象与此 Map 的等价性 |
hashCode() | 返回此 Map 的哈希码 |
其他方法
clear() | 从 Map 中删除所有映射 |
remove(Object key) | 从 Map 中删除键和关联的值 |
put(Object key, Object value) | 将指定值与指定键相关联 |
clear() | 从 Map 中删除所有映射 |
putAll(Map t) | 将指定 Map 中的所有映射复制到此 map |
如果我们使用putAll,则map可以自动扩展大小。如果使用put,建议在创建map的时候使用loadfactor自动扩展以提高效率。
查看 Map
访问元素
检索有关 Map 内容的信息但不更改 Map 内容。
get(Object key) | 返回与指定键关联的值 |
containsKey(Object key) | 如果 Map 包含指定键的映射,则返回 true |
containsValue(Object value) | 如果此 Map 将一个或多个键映射到指定值,则返回 true |
isEmpty() | 如果 Map 不包含键-值映射,则返回 true |
size() | 返回 Map 中的键-值映射的数目 |
key唯一但是value不一定唯一,所以使用containsValue的时候可能效率会较低。
hash技术
int hashvalue = (key.hashCode() & 0x7FFFFFFF) % table.length;
需要考虑和处理hash collision,如果是使用已有的则不需要考虑,如果自己实现hashmap,
则需要考虑和处理对应的case。
效率问题:之前使用的时候简单创建,基本上都没有初始化大小和负载因子,现在看了一下
jdk的help才发现有这两个参数可以在很多时候提高性能。
在创建map的时候建议使用
Map userMap = new HashMap();
来替代
HashMap userMap = new HashMap();
这也符合设计模式或者面向对象的理论,只要实现了相同的接口和方法
只需要在这个创建的地方修改,使用不同的类来创建,其他的调用代码则无须修改。