如何从多值映射中仅获取一个数据值

时间:2016-03-05 23:14:04

标签: java dictionary

我有一个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”?

2 个答案:

答案 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();