gpt4 book ai didi

java - 映射器输出在组合器中加倍

转载 作者:行者123 更新时间:2023-12-01 15:02:12 25 4
gpt4 key购买 nike

映射器仅输出该值一次。但是当我检查组合器时,该值是两次。这对我来说真的很奇怪。

请帮忙。

发送输出的 map 代码模块:

for(int i = 0; i<alcmapi.size(); i++)
{
int section = 0;

for(int j = 0; j<alcmapj.size(); j++)
{
if(!alcmapi.get(i).getid().equals(alcmapj.get(j).getid()))
{
int fi = Integer.parseInt(alcmapi.get(i).getField());
int fj = Integer.parseInt(alcmapj.get(j).getField());

ArrayList<CustomMap> al = new ArrayList<CustomMap>();
al.add(new CustomMap(alcmapi.get(i).getid(), fi));
al.add(new CustomMap(alcmapj.get(j).getid(), fj));


if(fi<fj)
{
section = fi;
}
else
{
section = fj;
}
Collections.sort(al);
{
output.collect(new Text(t+" "+al.get(0).getid()), new Text(al.get(1).getid()+" "+section));

}
}
}
}

在组合器中:

当我检查此处时,我发现与某个键对应的值显示为双倍:

while(values.hasNext()){
String val = values.next().toString();
System.out.println("val:"+val);
}

提前致谢!

最佳答案

看起来您针对所有其他元素测试了所有元素。例如,如果元素 3 和 5 满足条件,那么您将在 i=3、j=5 时写出该对一次,在 i=5、j=3 时再次写出该对。

我建议你将内部循环更改为:

for(int j = i+1; j<alcmapj.size(); j++)

关于java - 映射器输出在组合器中加倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13482097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com