我有一个HashMap的向量...但我希望它们被转置...第一行放在列向量中.. theese行是我矢量中的HashMaps
Matrix[ 0 ] = { (8.610482105102653,0 ), (9.551442421387952,1 ), (5.3757047978038734,2 ), }
Matrix[ 1 ] = { (4.465099271120103,0 ), (2.192818094857409,1 ), (6.135089039142705,2 ), }
Matrix[ 2 ] = { (8.308794639990024,0 ), (5.3010946979614495,1 ), (1.7648664328146066,2 ), }
我尝试过类似的事情:
public static Vector<HashMap<Integer, Double>> transpose(
Vector<HashMap<Integer, Double>> M) {
Vector<HashMap<Integer, Double>> transpose = new Vector<HashMap<Integer, Double>>();
HashMap<Integer,Double> H = new HashMap<Integer,Double>();
for (int i = 0; i < M.size(); i++) {
for (Map.Entry<Integer, Double> entry : M.get(i).entrySet()) {
H=M.get(entry.getKey());
H.put(i,entry.getValue());
System.out.println(" b"+H);
//transpose.set(entry.getKey(), H);
}
}
return transpose;
}
但看起来像这样:
b{0=8.610482105102653, 1=9.551442421387952, 2=5.3757047978038734}
b{0=9.551442421387952, 1=2.192818094857409, 2=6.135089039142705}
b{0=5.3757047978038734, 1=5.3010946979614495, 2=1.7648664328146066}
b{0=8.610482105102653, 1=9.551442421387952, 2=5.3757047978038734}
b{0=9.551442421387952, 1=2.192818094857409, 2=6.135089039142705}
b{0=5.3757047978038734, 1=6.135089039142705, 2=1.7648664328146066}
b{0=8.610482105102653, 1=9.551442421387952, 2=5.3757047978038734}
b{0=9.551442421387952, 1=2.192818094857409, 2=6.135089039142705}
b{0=5.3757047978038734, 1=6.135089039142705, 2=1.7648664328146066}
谢谢!