DESKTOP-2K8AISD_20200910-高凯
问题
1java.util.Map接口并没有继承java.lang.Iterable接口,因此不可以通过迭代器或for-each来直接迭代Map集合
1、可以获得Map实例中所有的key组成的Set集合,随后迭代key组成的Set集合
Set
for( String key : keys ) {
Integer value = map.get( key );
System.out.println( key + " : " + value );
}
Iterator<String> itor = keys.iterator();
while( itor.hasNext() ) {
String key = itor.next() ;
Integer value = map.get( key );
System.out.println( key + " : " + value );
}
2 、可以获得Map实例中所有的value组成的Collection集合(被称作值集),随后迭代value组成的Collection集合
Collection
for( Integer value : values ) {
System.out.println( value );
}
System.out.println( "- - - - - - - - - - - - - -" );
Iterator<Integer> itor = values.iterator();
while( itor.hasNext() ) {
Integer value = itor.next();
System.out.println( value );
}
3、可以获得Map实例中所有的Entry组成的Set集合(被称作键值集)
- 每个一个Entry实例中都包含了key和value
- 即使通过遍历Entry组成的Set集合获取到了所有的key-value,但仍然不能说直接迭代了Map集合
Set< Map.Entry<String,Integer> > entrys = map.entrySet();
Iterator< Map.Entry<String,Integer> > itor = entrys.iterator();
while( itor.hasNext() ) {
Map.Entry<String,Integer> entry = itor.next();
System.out.println( entry.getKey() + " : " + entry.getValue() );
}
System.out.println( "- - - - - - - - - - - - -" );
for( Map.Entry<String,Integer> entry : map.entrySet() ) {
System.out.println( entry.getKey() + " : " + entry.getValue() );
}
点赞