如何从Vector <hashmap <integer,double>&gt;()移植元素?

时间:2015-04-29 08:30:15

标签: java matrix vector hashmap transpose

我有一个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}

谢谢!

0 个答案:

没有答案