1

文字列と浮動小数点数を含むマップからのデータを JTable に入力しようとしています。これが私がやろうとしている方法ですが、同じデータを何度も取得します。

private JTable buildTable(Map<String, Float> mapData){

   String columnNames[] = { "MyString", "MyFloat" };
   Object[][] data = new Object[mapData.size()][2];

   for(int i = 0; i < mapData.size(); i++){

      for(Map.Entry<String, Float> entry : mapData.entrySet()){

         data[i][0] = entry.getKey();
         data[i][1] = entry.getValue().getMyFloat();
         break;
      }
   }

   JTable table = new JTable(data, columnNames);

   return table;
}
4

1 に答える 1

2

内側のループは、外側のループの反復ごとに、すべてのキーと値のペアを同じ配列インデックスに書き込みます。実際、必要なループは 2 つではなく、1 つだけです。インデックスをインクリメントする別のカウンターが役立ちます。

int i = 0;
for(Map.Entry<String, Float> entry : mapData.entrySet()) {

  data[i][0] = entry.getKey();
  data[i][1] = entry.getValue().getMyFloat();
  i++;
}
于 2013-05-28T15:11:17.273 に答える