从地图获取数组并转换键

时间:2016-10-06 08:25:05

标签: java arrays

我有一个map<String, Object>和一个int[]数组,它应该包含地图键。 有没有一种很好的简短方法将键转换为int,而不使用循环?

myArray = myMap.keySet().toArray(new int[5]);

我使用Java 8。 谢谢!

2 个答案:

答案 0 :(得分:7)

假设您的所有String密钥都可以安全地解析为整数:

int[] keys = myMap.keySet().stream().mapToInt(Integer::parseInt).toArray();
  • keySet()会返回Set<String>
  • stream()会返回Stream<String>
  • mapToInt()通过在每个Stream<String>上应用IntStreamInteger.parseInt()映射到String
  • toArray()返回IntStream所有元素的数组。

答案 1 :(得分:0)

myMap.keySet().toArray(); // returns an array of keys
myMap.values().toArray(); // returns an array of values

<强>注意! 需要注意的是,两个数组的排序可能不一样。