我有一个map<String, Object>
和一个int[]
数组,它应该包含地图键。
有没有一种很好的简短方法将键转换为int,而不使用循环?
myArray = myMap.keySet().toArray(new int[5]);
我使用Java 8
。
谢谢!
答案 0 :(得分:7)
假设您的所有String
密钥都可以安全地解析为整数:
int[] keys = myMap.keySet().stream().mapToInt(Integer::parseInt).toArray();
keySet()
会返回Set<String>
。stream()
会返回Stream<String>
。mapToInt()
通过在每个Stream<String>
上应用IntStream
将Integer.parseInt()
映射到String
。toArray()
返回IntStream
所有元素的数组。 答案 1 :(得分:0)
myMap.keySet().toArray(); // returns an array of keys
myMap.values().toArray(); // returns an array of values
<强>注意!强> 需要注意的是,两个数组的排序可能不一样。