【发布时间】:2019-03-04 17:25:31
【问题描述】:
我正在尝试从哈希图中访问一对的值。 我有一个 Map ,其中 Integer 是键,info 是值。 我想遍历地图并从 info 对象中获取特定的数据字段(namePlayer)。
class info{
public String namePlayer;
public String knowledge;
public int coins;
info(String nom,String coneixament,int monedes){
namePlayer=nom;
knowledge=coneixament;
coins=monedes;
}
void setMonedes(int monedes){
coins=monedes;
}
void setConeixement(String confianza){
knowledge=confianza;
}
String getConeixament(){
return knowledge;
}
String getNames(){
return name;
}
}
public class Memory{
private Map<Integer,info> k;
Memory(){
k= new HashMap<Integer, info>();
}
void getValues(){
Iterator it = _infoPartida.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
info s = pair.getValues();// error
String name = s.getNames():
}
}
}
【问题讨论】:
-
真正的问题是什么? getValues() 是 void 类型,所以它不会返回任何东西?
-
首先,它是
getValue(),而不是getValues()。其次,getValue()将返回一个Object,因为您使用的是原始类型。 -
一个条目包含一个键和一个值,使用
pair.getValue()获取它的值。 -
我只想打印拥有键 2 的玩家的名字。
-
那么你不需要遍历整个集合。您可以 .get(7) 从 HashMap 中获取值。
标签: java dictionary hashmap keyvaluepair