0
我试图选择一些名为保存在哈希集中的元素。我在HashSet的迭代用foreach称为元素,如通过哈希集迭代Java中的StackOverflow异常
for(Element e: elements).
这些被选中的单元在ArrayList<Element> el
处理。
其实我前一阵子没有任何问题。该方法从单元测试中传递。然后,突然间,我开始为该方法获得stackoverflow例外。我调试了。我看到一些奇怪的事情发生在那里。
我正在填充一个ArrayList并且元素的迭代完成。最后,该方法必须返回数组列表。但是,它开始通过将arraylist设置为空来重新设置哈希集。我不明白为什么会发生这种情况。我已经编程了2年,这是我第一次看到这个奇怪的东西。
下面是代码,如果你想看看:
public ArrayList<Element> addNextLeftElements(Element firstEl, HashSet<Element> elements, ArrayList<Element> el) {
for (Element nextEl : elements) {
if (!nextEl.equals(firstEl)) {
if (nextEl.overlaps(firstEl, ac.absPrecision)) {
el.add(nextEl);
} else {
for (double dis = 16.0; dis <= 18.1; dis += 0.1) {
if (nextEl.transOverlap(firstEl, dis, ac.absPrecision)) {
if (!el.contains(firstEl)) {
el.add(firstEl);
}
}
for (int displus = 9; displus <= 11; displus++) {
if (nextEl.transOverlap(firstEl, dis, ac.absPrecision)) {
if (!el.contains(firstEl)) {
el.add(firstEl);
}
}
}
}
}
}
}
return(el);
}
在此先感谢
我面对android系统中的任何建议同样的问题来解决问题? –