nal*_*alo 12
HashMap map = new HashMap();
Object[][] arr = new Object[map.size()][2];
Set entries = map.entrySet();
Iterator entriesIterator = entries.iterator();
int i = 0;
while(entriesIterator.hasNext()){
Map.Entry mapping = (Map.Entry) entriesIterator.next();
arr[i][0] = mapping.getKey();
arr[i][1] = mapping.getValue();
i++;
}
Run Code Online (Sandbox Code Playgroud)
只有当键和值的类型相同时才能执行此操作.
鉴于:
HashMap<String,String> map;
Run Code Online (Sandbox Code Playgroud)
我可以使用这个简单的循环从这个地图创建一个数组:
String[][] array = new String[map.size()][2];
int count = 0;
for(Map.Entry<String,String> entry : map.entrySet()){
array[count][0] = entry.getKey();
array[count][1] = entry.getValue();
count++;
}
Run Code Online (Sandbox Code Playgroud)
怎么样
Object[][] array = new Object[][]{map.keySet.toArray(), map.entrySet.toArray()};
Run Code Online (Sandbox Code Playgroud)
或者,要更具体地说明类型,可以说它们是Strings:Set,toArray它带有一个提示参数,因此
String[][] array = new String[][]{map.keySet.toArray(new String[0]), map.entrySet.toArray(new String[0])};
Run Code Online (Sandbox Code Playgroud)
编辑:我只是几天后才意识到,虽然这可能是偶然的,但通常不应该这样做。原因是中间的Set; 尽管它是“由地图支持的”,但似乎没有明确保证它将以任何特定顺序进行迭代。因此,键数组和条目数组的顺序可能不相同,这肯定是一场灾难!
| 归档时间: |
|
| 查看次数: |
15316 次 |
| 最近记录: |