Java 在映射上迭代并调用另一个方法

Java 在映射上迭代并调用另一个方法,java,map,Java,Map,在一个方法中,我得到了如下所示的地图 Map<Integer, Integer> result1 =jmxService.generateMabc(p1, p2,p3,p4); Map result1=jmxService.generateMabc(p1、p2、p3、p4); 现在映射结果1将由oif键值对组成为usal 现在我想逐一迭代映射,获取映射的值 这是键和值,将是integer类型,并将它们转换为字符串 并将字符串存储为两个字符串变量,如下所示 字符串j=将存储密钥 字

在一个方法中,我得到了如下所示的地图

Map<Integer, Integer> result1 =jmxService.generateMabc(p1, p2,p3,p4);
Map result1=jmxService.generateMabc(p1、p2、p3、p4);
现在映射结果1将由oif键值对组成为usal 现在我想逐一迭代映射,获取映射的值 这是键和值,将是integer类型,并将它们转换为字符串 并将字符串存储为两个字符串变量,如下所示

字符串j=将存储密钥 字符串t=将存储该值

amd然后将这两个参数传递给另一个方法调用,该方法调用将使用字符串 j和字符串t作为参数,一旦它们通过,我希望j和t为空,以便在下一次迭代中,相同的过程可以继续,直到时间映射有值c。请您建议如何实现这一点,我尝试的是

for (Map.Entry<Integer, Integer> entry : result1.entrySet())
            {

            String j, t;
               j=entry.getKey();
               t= entry.getValue();

abc .callanothermethod(string p1,stringp2, stringj, string t)
j=null;
t=null;
   }
for(Map.Entry:result1.entrySet())
{
串j,t;
j=entry.getKey();
t=entry.getValue();
abc.callanothermethod(字符串p1、字符串P2、字符串J、字符串t)
j=零;
t=零;
}

请告知获得相同值的正确方法。

整数不是字符串。所以
j=entry.getKey()
没有意义

您需要将整数转换为字符串(例如,通过调用
toString()
):

你真的需要学会

  • 阅读编译器中的错误消息,这些消息告诉您什么是错误的,在哪里
  • 阅读您正在使用的类的javadoc,了解您可以对它们做什么

谢谢,我已经这么做了..字符串t,k;for(Map.Entry-Entry:result1.entrySet()){t=Entry.getKey().toString();k=Entry.getValue().toString();abc.callanothermethod(string p1,stringp2,stringj,string t)}您能告诉我,我已经在for循环外部声明了字符串参数,这是正确的方法吗?否。通常应尽可能缩小变量的范围。如果它们只在循环内部使用,那么没有理由在外部声明它们。不过,你应该给他们起个有意义的名字
j
t
是可怕的名字。
j = entry.getKey().toString();