工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 2059|回复: 3

关于Map的一点理解

[复制链接]
发表于 2007-9-30 22:51 | 显示全部楼层 |阅读模式
map翻译成中文是地图。这里说的不是地图,是Java的集合Map。

首先,如果你参加和Java相关的笔试或面试,很可能会被问到:HashMap与HashTable的区别是什么?这里就不解释了,随便百度或谷歌一下都有。

Map,顾名思义,就是一张地图,给个名字就可以找出你想找的地方。用标准的语言来说是,一个Key对应一个Value,通过Key就可以取得Value。

所以Map的主要两个方法是: Object put(Object key, Object  value) 和Object get(Object key)

这两个方法的使用没什么值得举例,实在太简单了。总之你put什么进去,就可以拿它的Key去取它的值。唯一要注意的是,Key一旦重复,就会覆盖掉旧的值。

Map有时候用于替代简单的getter和setter所需的属性,这个我不会解释,只好用例子了。


  1. Map entry=new HashMap(20);
  2. String getName(){
  3.   return (String)entry.get("name");
  4. }
  5. void setName(String name){
  6.   entry.put("name",name);
  7. }
复制代码


上述代码是简单的应用,可以扩展成支持多语言,重载put和get方法,可以传入参数取英文的或中文的Name,也可以通过Local判断。

另外一种应用是,在Map里保存Map,如map.put(key,new HashMap())。通过几层嵌套Map,恐怕自己也不知道自己要的东西放在哪了。如果你想保存几个相关的值而不想为此写一个Javabean,就可以用两层Map的方式了。


以上理解源于今晚听到的一段旋律,那段旋律让我想起了些东西,感觉就像曾经以那段旋律为Key,以某些东西为Value,存放在脑海这个Map里,现在一听到这段旋律,就取出了脑海里的东西。尝试执行remove(key)方法时却抛出了异常......
发表于 2007-10-1 12:14 | 显示全部楼层
楼主在remove(key)方法时却抛出了异常,此方法有三种异常:
1.ClassCastException - 如果该键对于此映射是不合适的类型(可选)。
2.NullPointerException - 如果该键为 null 并且此映射不允许 null 键(可选)。
3.UnsupportedOperationException - 如果此映射不支持 remove 操作。

如果是第三种,难道楼主的脑子就是传说中只进不出的脑子王?
如果是第二种,证明那段key只是楼主的幻觉,即null.
如果是第一种...我也不知怎么解释,

开个玩笑,楼主别介意!
回复

使用道具 举报

发表于 2007-10-1 12:16 | 显示全部楼层
楼主在remove(key)方法时却抛出了异常,此方法有三种异常:
1.ClassCastException - 如果该键对于此映射是不合适的类型(可选)。
2.NullPointerException - 如果该键为 null 并且此映射不允许 null 键(可选)。
3.UnsupportedOperationException - 如果此映射不支持 remove 操作。

如果是第三种,难道楼主的脑子就是传说中只进不出的脑子王?
如果是第二种,证明那段key只是楼主的幻觉,即null.
如果是第一种...我也不知怎么解释,

开个玩笑,楼主别介意!
回复

使用道具 举报

发表于 2007-10-3 22:18 | 显示全部楼层
lz的技术实在是强!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-5-15 10:16

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表