从 HashMap 中提取值
Posted
技术标签:
【中文标题】从 HashMap 中提取值【英文标题】:extracting values from HashMap 【发布时间】:2012-04-28 03:24:59 【问题描述】:我试图学习并理解 HashMap 的工作原理。所以我创建了这个哈希图来存储某些值,这些值在使用迭代器显示时会给我输出
1=2
2=3
3=4
等等。我使用Iterator.next()
函数获得此输出。现在我真正的疑问是,由于这个值的类型是在迭代器对象中返回的,如果我只需要提取上述等式的右侧值,是否有任何功能?类似于子字符串的东西。有什么办法可以让我得到结果
2
3
4
任何帮助将不胜感激。提前致谢。
【问题讨论】:
在大多数情况下,不需要直接与迭代器交互。请参阅 Peter Lawrey 的回答,了解如何为每个循环创建一个。 【参考方案1】:我会使用类似的东西
Map<Integer, Integer> map = new HashMap<>();
for(int value: map.values())
System.out.println(value);
【讨论】:
【参考方案2】:您正在寻找map.values()
。
【讨论】:
【参考方案3】:Map 有一个名为 values() 的方法来获取所有值的集合。 (右侧)
同样,有一个方法调用 keySet() 来获取所有键的 Set。 (左侧)
【讨论】:
【参考方案4】:import java.util.HashMap;
public class Test
public static void main( String args[] )
HashMap < Integer , Integer > map = new HashMap < Integer , Integer >();
map.put( 1 , 2 );
map.put( 2 , 3 );
map.put( 3 , 4 );
for ( Integer key : map.keySet() )
System.out.println( map.get( key ) );
【讨论】:
【参考方案5】:您需要返回Collection
的Map#values() 方法。
然后您可以通过正常方式从此集合中获取Iterator
。
【讨论】:
以上是关于从 HashMap 中提取值的主要内容,如果未能解决你的问题,请参考以下文章