DESKTOP-7HC873M_20200911-李宗宝

问题

迭代map集合的三种方式

java.util.Map接口并没有继承java.lang.Iterable接口,因此不可以通过迭代器或for-each来直接迭代Map集合

1,获得map集合中的所有key组成的set集合,然后迭代set集合

Map<String,Integer> map = Map.of( "张三" , 175 , "李四" , 185 , "王五" , 160,  );
Set<String> keys = map.keySet();
for( String key : keys){
    Integer value = map.get(key);
    System.out.println( key + " : " + value );
}

2,可以获得Map实例中所有的value组成的Collection集合(被称作值集),随后迭代value组成的Collection集合

Map<String,Integer> map = Map.of( "张三" , 175 , "李四" , 185 , "王五" , 160,  );
Collection<Integer> values = map.values();
for( Integer value : values ) {
            System.out.println( value );
        }

3,可以获得Map实例中所有的Entry组成的Set集合(被称作键值集)

Map<String,Integer> map = Map.of( "张三" , 175 , "李四" , 185 , "王五" , 160,  );
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() );
}

HashMap什么时候执行扩容???

final V putVal(int hash, K key, V value, boolean onlyIfAbsent,
                   boolean evict) {
                   ......
                  
if (++size > threshold){
            resize();
            }
        }

心得

宿舍的蚊子由我一个人养活!!

为啥就不咬老潘呢??????

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1