获得Map map的值?

y11111494 2010-01-05 10:35:11
在Map<String, String> map中,
某条记录是(a,b)
如何根据该记录中第一个值a,
获得第二个值b?
不知道用哪个函数?或者有其他做法?
...全文
4059 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
不白吃饭 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 y11111494 的回复:]
IdentitiHashMap比较的是对象地址
[/Quote]

IdentitiHashMap他比较的是引用,,,
hashmap比较的是字符串的哈希码,或对象地址的哈希码
但是当前问题中字符串的哈希码比较和引用比较没什么区别,所以看不出效果

至于hashmap是如何把key 和value进行匹配的,
估计就是根据key算出一个hash地址,把value存进去。3个‘a’的hash地址相同,value当然就是存的最后一个了。
而重复put 相同的的key他不报错,只是规定你key不能重复,一个key对应一个value。你输入相同的key他会覆盖掉以前的数据,这是很危险的,所以在put key的时候要坐下是否重复的判断。


charles361 2010-01-06
  • 打赏
  • 举报
回复
map.get(key)
sky123123 2010-01-06
  • 打赏
  • 举报
回复
四楼说的很好嘛
番茄配黄瓜 2010-01-06
  • 打赏
  • 举报
回复
up
hongjn 2010-01-06
  • 打赏
  • 举报
回复
map.get(a);
coveking 2010-01-05
  • 打赏
  • 举报
回复
map里面可以存放:
map.put("a","b");
map.put("a","c");
map.put("a","d");
这是如何查找?
map.get("a")返回null




肯定不是返回null
是返回最后一个压进去的值。也就是说返回是d
Nature_2009 2010-01-05
  • 打赏
  • 举报
回复

Map<String, String> map = new IdentityHashMap<String, String> ();

map.put("a","b");
map.put("a","c");
map.put("a","d");
map.put("e","f");

System.out.println(map.get("a"));

/**
* 打印结果:d
*/


这是不可能返回null的,因为你指定的key,在map中存在,只是他会返回同一个key最后一个对应的value,map中不应该存在一个key,对应多个value。
标准一个key,一个value。

按照你这样的逻辑结构,你可以改造一下map的泛型,如下:

Map<String, List<String>> map = new IdentityHashMap<String, List<String>> ();
or
Map<String, String[]> map = new IdentityHashMap<String, String[]> ();
Nature_2009 2010-01-05
  • 打赏
  • 举报
回复

Map<String, String> map = new IdentityHashMap<String, String> ();

map.put("a","b");
map.put("a","c");
map.put("a","d");
map.put("e","f");

System.out.println(map.get("a"));

/**
* 打印结果:d
*/


这是不可能返回null的,因为你指定的key,在map中存在,只是他会返回同一个key最后一个对应的value,map中不应该存在一个key,对应多个value。
标准一个key,一个value。

按照你这样的逻辑结构,你可以改造一下map的泛型,如下:

Map<String, List<String>> map = new IdentityHashMap<String, List<String>> ();
or
Map<String, String[]> map = new IdentityHashMap<String, String[]> ();

等。
y11111494 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 nature_2009 的回复:]
Java code

Map<String, String> map=new IdentityHashMap<String, String> ();

map.put("a","b");
map.put("c","d");

System.out.println(map.get("a"));/**
* 打印结果:b*?-
[/Quote]

map里面可以存放:
map.put("a","b");
map.put("a","c");
map.put("a","d");
这是如何查找?
map.get("a")返回null


y11111494 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 nature_2009 的回复:]
Java code

Map<String, String> map=new IdentityHashMap<String, String> ();

map.put("a","b");
map.put("c","d");

System.out.println(map.get("a"));/**
* 打印结果:b*?-
[/Quote]

map里面可以存放:
map.put("a","b");
map.put("a","c");
map.put("a","d");
这是如何查找?
map.get("a")返回null


Nature_2009 2010-01-05
  • 打赏
  • 举报
回复


Map<String, String> map = new IdentityHashMap<String, String> ();

map.put("a", "b");
map.put("c", "d");

System.out.println(map.get("a"));

/**
* 打印结果:b
*/
cs207 2010-01-05
  • 打赏
  • 举报
回复
get()
y11111494 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 y11111494 的回复:]
在Map <String, String> map中,
某条记录是(a,b)
如何根据该记录中第一个值a,
获得第二个值b?
不知道用哪个函数?或者有其他做法?

[/Quote]
对不起重新声明一下:
Map<String, String> map = new IdentityHashMap<String, String>();

如果 Map<String, String> map = new HashMap<String, String>();这样定义
按照大家的方法是没错的。
Dazzlingwinter 2010-01-05
  • 打赏
  • 举报
回复

System.out.println(map.get(pars.getKey()));

LZ多看API呀...
y11111494 2010-01-05
  • 打赏
  • 举报
回复
对不起是
map.get("a")
真哥哥 2010-01-05
  • 打赏
  • 举报
回复
值=map.get(键);
y11111494 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 y11111494 的回复:]
map中放的数据是:
Map.Entry <String, String> pairs
map.put(pairs.getKey(),pairs.getValue());
[/Quote]

使用map3.get("a")
返回的是null
xlxyeyu 2010-01-05
  • 打赏
  • 举报
回复
推荐楼主下载一个Java中文API,API版本跟你java版本一致,这是提高java水平的快捷方式
map.put("a", "b");
map.get("a");
yzk116688 2010-01-05
  • 打赏
  • 举报
回复
map.get("a"),这就是通过key得到value的值
y11111494 2010-01-05
  • 打赏
  • 举报
回复
map中放的数据是:
Map.Entry<String, String> pairs
map.put(pairs.getKey(),pairs.getValue());
加载更多回复(6)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧