3

我想将 Map 的所有键/值添加到二维数组。

有没有人知道更好的方法? 我做了如下,但我寻找更好的方法。

    Map<String, String> memoMap = AvoCollection.getMemoMap();
    String[][] data = new String[memoMap.size()][2];
    int ii =0;
    for(Map.Entry entry : memoMap.entrySet()){
        data[ii][0] = entry.getKey().toString();
        data[ii][1] = entry.getValue().toString();
        ii++;
    }
    final DefaultTableModel model = new DefaultTableModel(data,new String[]{"Memo","ID"});
4

2 回答 2

6

这可能会稍微好一点,但不会好很多:

Map<String,String> memoMap = AvoCollection.getMemoMap();
String[][] data = new String[memoMap.size()][];
int ii =0;
for(Map.Entry<String,String> entry : memoMap.entrySet()){
    data[ii++] = new String[] { entry.getKey(), entry.getValue() };
}
final DefaultTableModel model = new DefaultTableModel(data,new String[]{"Memo","ID"});

声明后Map.Entry<String,String>可以停止调用toString;您还可以使用聚合创建一个二元素数组。

于 2012-08-03T13:38:12.590 回答
1

你愿意使用谷歌的番石榴图书馆吗?http://code.google.com/p/guava-libraries/wiki/NewCollectionTypesExplained。然后,您可以尝试使用 MultiMap,它将返回键和值的集合,这些键和值可以轻松转换为数组。尝试查看这个库,它有很多很酷的功能。

于 2012-08-03T13:43:50.197 回答