Java 如何在迭代时从hashmap中删除密钥
我在一个hashmap上迭代,并比较两个键。我在将第一个键保存到temp后删除它,因此它不会通过键集进行检查 如果发现它与前一个密钥配对,我想删除这两个密钥(或者至少不再迭代该特定密钥)Java 如何在迭代时从hashmap中删除密钥,java,loops,hashmap,key,Java,Loops,Hashmap,Key,我在一个hashmap上迭代,并比较两个键。我在将第一个键保存到temp后删除它,因此它不会通过键集进行检查 如果发现它与前一个密钥配对,我想删除这两个密钥(或者至少不再迭代该特定密钥) Iterator<Entry<Double, List<Double>>> i = map.entrySet().iterator(); while(i.hasNext()) { Map.Entry<Double, List<Double>>
Iterator<Entry<Double, List<Double>>> i = map.entrySet().iterator();
while(i.hasNext()) {
Map.Entry<Double, List<Double>> next = i.next();
i.remove();
for(Map.Entry<Double, List<Double>> e : map.entrySet()) {
//if true they are a pair
if((next.getKey() == Double.POSITIVE_INFINITY && e.getKey() == 0) || (next.getKey() == 0 && e.getKey() == Double.POSITIVE_INFINITY) || Math.abs(next.getKey() * e.getKey() + 1.0) < 0.0000001) {
List<Double> arrayX = next.getValue();
List<Double> arrayY = e.getValue();
for(int a = 0; a < arrayX.size(); a++) {
for(int b = 0; b < arrayY.size(); b++) {
if(Math.abs(arrayX.get(a) - arrayY.get(b)) < 0.0000001) {
squares++;
}
}
}
}
}
}
我怎样才能做到这一点呢?如果你将这些键相乘得到-1,那么我会将它们配对,上面只是一个例子
{1,2,3,1,2,4,5,6}
1 against {2,3,1,2,4,5,6}
when it reaches 1 remove it and perform a function
so the list left is {2,3,2,4,5,6}
repeat until all the list has been traversed