我有一个Map(java.util.Map),它包含int类型和Serializer(自定义类型)。对象“typeA”是Serializer的超类,getSerializerValues()方法返回Serializers和Integers的映射。我想只从地图中的每个位置获取整数并将它们保存到数组中。我怎么能这样做?
Map<Serializer, Integer> serializers = typeA.getSerializerValues();
int[] values = new int[serializers.size()];
//how to get JUST the ints from each position in the map and save them into the int array “values”?
答案 0 :(得分:1)
使用values()
方法。
public Collection<V> values()
返回此地图中包含的值的Collection视图。
请参阅https://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html#values%28%29
答案 1 :(得分:0)
以下是两种如何将地图中的值作为数组获取的方法:
首先是Java 7方式:
int[] values = new int[serializers.size()];
int i = 0;
for(int value : serializers.values()) {
values[i++] = value;
}
第二个Java 8方式:
int[] values = serializers.values().stream().mapToInt(x -> x).toArray();