第一次定义Iterator,对他进行循环,则第二次再用的时候还要重新定义一次,例如下面的实例
public HashMap normalization(HashMap parMap) //对矩阵以列为单位进行归一化,即对每一个lengthWeightMap进行归一化
{
Iterator it=parMap.entrySet().iterator(); //对lengthWeightMap中元素进行遍历
double sumOfSqr=0;
while(it.hasNext())
{
Map.Entry entry =(Map.Entry)it.next();
Object val=entry.getValue();
double v= ((Integer) val).intValue();
sumOfSqr+=v*v; //各个元素的平方和
}
double sqrtOfSum=Math.sqrt(sumOfSqr); //平方的开方根
it=parMap.entrySet().iterator();
while(it.hasNext())
{
Map.Entry entry =(Map.Entry)it.next();
Object val=entry.getValue();
double v= ((Integer) val).intValue();
try
{
v=v/sqrtOfSum;
}
catch(ArithmeticException e)
{
System.out.println("算数异常");
}
return parMap;
}
}