Java中AbstractMap values()方法的示例
values() 方法返回一个包含所有映射值的集合。这个方法返回的集合是AbstractCollection的实例。如果地图被修改,则集合本身也会被修改。这个方法在许多遍历地图值的广泛用途中是有用的。
以下是 values()方法的签名:
public Collection<V> values()
使用示例
假设有一个SampleMap类继承了AbstractMap,并存储两个条目,如下所示:
import java.util.AbstractMap;
import java.util.Set;
public class SampleMap<K, V> extends AbstractMap<K, V> {
private Set<Entry<K, V>> entries;
private Object[] keys;
private Object[] values;
private int size = 0;
public SampleMap() {
keys = new Object[10];
values = new Object[10];
}
@Override
public V get(Object key) {
if (key == null) {
throw new NullPointerException();
}
for (int i = 0; i < size; i++) {
if (key.equals(keys[i])) {
return (V) values[i];
}
}
return null;
}
@Override
public Set<Entry<K, V>> entrySet() {
if (entries == null) {
entries = new SampleSet<>(this);
}
return entries;
}
@Override
public V put(K key, V value) {
if (key == null) {
throw new NullPointerException();
}
V previousValue = null;
for (int i = 0; i < size; i++) {
if (key.equals(keys[i])) {
previousValue = (V) values[i];
values[i] = value;
return previousValue;
}
}
keys[size] = key;
values[size] = value;
size++;
return previousValue;
}
}
下一步我们使用 values() 方法获取这个SampleMap的所有值并打印出来。
import java.util.Collection;
import java.util.Map;
public class SampleApp {
public static void main(String[] args) {
Map<String, String> map = new SampleMap<>();
map.put("key1", "value1");
map.put("key2", "value2");
Collection<String> values = map.values();
values.forEach(System.out::println);
}
}
当这个示例程序执行时,控制台将输出以下内容:
value1
value2
结论
在使用Java中AbstractMap类时,获取所有地图中值的方法之一是使用 values()。 在处理地图数据时,遍历所有值可能是有用的,特别是在需要对地图中的所有数据进行分析时。 希望这个示例代码有助于客户端程序员理解使用values() 来获取数据。
极客笔记