Java HashMap get(Object key)的使用方法
我对get(Objectkey)这个使用方法很不懂,因为比如说我有一个LinkedHashMap<RecordID,Record>,我要怎样才能用get(RecordID...
我对get(Object key)这个使用方法很不懂,因为比如说我有一个LinkedHashMap<RecordID, Record>, 我要怎样才能用get(RecordID rid)检索出Record record呢?我如果直接造一个新的RecordID给get这个方法,明明这个map中是有这个RecordID的,可是由于是新造的,它指向null,所以得到的结果是null.
那么我要怎样在这个map中通过key来return value呢? 展开
那么我要怎样在这个map中通过key来return value呢? 展开
5个回答
展开全部
你可以直接造一个新的RecordID给get这个方法,前提是你必须实现RecordID的equals方法和hashcode方法,用来比较两个对象是否相等,默认的equals方法是比较的地址。所以是不相等,得到的肯定是null。如果你的RecordID对象用Integer或是String等已经从新实现了的equals方法的类型代替,就可以直接new了。
你如果想遍历所有的可以用iterator
也可以直接用foreace循环如下:如果哪里不清楚,请留言
LinkedHashMap <RecordID, Record>lhm=new LinkedHashMap<RecordID, Record>();
for(Record i:m.values()){
System.out.println(i);
}
你如果想遍历所有的可以用iterator
也可以直接用foreace循环如下:如果哪里不清楚,请留言
LinkedHashMap <RecordID, Record>lhm=new LinkedHashMap<RecordID, Record>();
for(Record i:m.values()){
System.out.println(i);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先取出map中所有ID 这需要一个方法
Set set=linkedhashmap.getkeys()(你的map集合的一个方法)
然后对你建立的set集合 进行遍历
可以用增强for循环:
for(Object o:set){
if(o.equals(RecordID)){
String str = map.getvalue(o);
}
}
就可以了当然str要在外面定义
Set set=linkedhashmap.getkeys()(你的map集合的一个方法)
然后对你建立的set集合 进行遍历
可以用增强for循环:
for(Object o:set){
if(o.equals(RecordID)){
String str = map.getvalue(o);
}
}
就可以了当然str要在外面定义
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当然是不能new一个新的了,必须是你声明这个map不能是局部的了
比如 HashMap LinkedHashMap<RecordID, Record> = new HashMap<RecordID, Record> ();
LinkedHashMap.put(id,record);
LinkedHashMap.get(id);
也就是说如果你全局都需要操作这个HashMap 的话,那么你要把它声明为一个全局变量,这样你先put在get,就会有值了
比如 HashMap LinkedHashMap<RecordID, Record> = new HashMap<RecordID, Record> ();
LinkedHashMap.put(id,record);
LinkedHashMap.get(id);
也就是说如果你全局都需要操作这个HashMap 的话,那么你要把它声明为一个全局变量,这样你先put在get,就会有值了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-12-08
展开全部
map.put("A","123455");
map.put("B","123456");
map.put("C","123457");
map.put("D","123458");
map.get("A");
or
map.get(new String("A"));
Set<String> set=(Set<String>)map.keySet();
Iterator<String> iterator=set. iterator();
while(iterator.hasNext() ){
map.get(iterator.next());
}
}
map.put("B","123456");
map.put("C","123457");
map.put("D","123458");
map.get("A");
or
map.get(new String("A"));
Set<String> set=(Set<String>)map.keySet();
Iterator<String> iterator=set. iterator();
while(iterator.hasNext() ){
map.get(iterator.next());
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
get
public V get(Object key)
返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null。
更确切地讲,如果此映射包含一个满足 (key==null ? k==null : key.equals(k)) 的从
k 键到 v 值的映射关系,则此方法返回 v;否则返回
null。(最多只能有一个这样的映射关系。)
返回 null 值并不一定 表明该映射不包含该键的映射关系;也可能该映射将该键显示地映射为
null。可使用 containsKey
操作来区分这两种情况。
指定者:
接口 Map<K,V> 中的 get
覆盖:
类 AbstractMap<K,V> 中的
get
参数:
key - 要返回其关联值的键
返回:
指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null
public V get(Object key)
返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null。
更确切地讲,如果此映射包含一个满足 (key==null ? k==null : key.equals(k)) 的从
k 键到 v 值的映射关系,则此方法返回 v;否则返回
null。(最多只能有一个这样的映射关系。)
返回 null 值并不一定 表明该映射不包含该键的映射关系;也可能该映射将该键显示地映射为
null。可使用 containsKey
操作来区分这两种情况。
指定者:
接口 Map<K,V> 中的 get
覆盖:
类 AbstractMap<K,V> 中的
get
参数:
key - 要返回其关联值的键
返回:
指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询