我正在尝试从hashmap访问一对的值。 我有一个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():
}
}
}
答案 0 :(得分:0)
您需要将常规信息添加到Iterator
void getValues(){
Iterator<info> it = k.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = it.next();
info s = pair.getValue();
String name = s.getNames():
}
}
答案 1 :(得分:0)
这在Java中很容易
for (Info info : k.values()){
System.out.println(info.getNames();
}
你去吧。
有关如何处理地图的更多信息,请查看dokumentation
答案 2 :(得分:0)
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():
}
}
应该是
public String getPlayerName(int index) {
info i = k.get(index);
return i.getNames();
}
答案 3 :(得分:0)
正如@Lee先生指出的那样......你必须在你的Iterator
...和Map.Entry
void getValues(){
Iterator<Map.Entry<Integer,info>> it = _infoPartida.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Integer,info> pair = it.next();
info s = pair.getValue();
String name = s.getNames();
}
}
假设k
是_infoPartida
。
另外,考虑@ Rainer的3分。
答案 4 :(得分:0)
这里有两种选择。循环使用for循环或迭代器。对于循环很容易,如@Rainer所示,但Iterator更强大,因为它允许您删除您是一个元素并具有更多功能。