(java基础知识)最简单的修改HashMap value值的方法

时间:2021-06-07 20:02:15

说到遍历,首先应该想到for循环,然而map集合的遍历通常情况下是要这样在的,先要获得一个迭代器。

  1. Map<Integer,String> map = new HashMap<>();    
  2.    
  3.     Iterator it = map.entrySet().iterator();    
  4.    
  5.     while (it.hasNext()) {    
  6.    
  7.         Map.Entry entry = (Map.Entry) it.next();    
  8.    
  9.         Object key = entry.getKey();    
  10.    
  11.         Object value = entry.getValue();   

实际上一个foreach循环也是可以的,很简洁吧~

  1. for(Map.Entry<Integer,Integer> m:map.entrySet()) 
  2.                 { 
  3.                     if(arr[i]==(int)m.getKey()) 
  4.                         map.put((int)m.getKey(),(int)m.getValue()+1); 
  5.                 } 

附上一个完整的小程序例子。

随机生成长度为100的数组,数组元素为1到10,统计出现次数最多和最少的元素

  1. import java.util.*; 
  2. class   Count  
  3.     public void count(int[] arr) 
  4.     { 
  5.         int num=0
  6.         Map<Integer,Integer> map=new HashMap<Integer,Integer>(); 
  7.         for(int i=1;i<=10;i++) 
  8.         { 
  9.             map.put(i,num); 
  10.         } 
  11.         for(int i=0;i<arr.length;i++) 
  12.         { 
  13.             /*Iterator it = map.entrySet().iterator();   
  14.             while(it.hasNext())
  15.                 {    
  16.                     Map.Entry m=(Map.Entry)it.next();
  17.                     if(arr[i]==(int)m.getKey())
  18.                         map.put((int)m.getKey(),(int)m.getValue()+1);
  19.                 }*/ 
  20.                 for(Map.Entry<Integer,Integer> m:map.entrySet()) 
  21.                 { 
  22.                     if(arr[i]==(int)m.getKey()) 
  23.                         map.put((int)m.getKey(),(int)m.getValue()+1); 
  24.                 } 
  25.         } 
  26.         for(Map.Entry<Integer,Integer> m:map.entrySet()) 
  27.         { 
  28.             System.out.println(""+m.getKey()+"出现的次数为:"+m.getValue()+"次"); 
  29.         } 
  30.     } 
  31.      
  32.     public static void main(String[] args)  
  33.     { 
  34.         Random rd=new Random(); 
  35.         int[] arr=new int[100]; 
  36.         for(int i=0;i<100;i++) 
  37.         { 
  38.             arr[i]=rd.nextInt(10)+1
  39.         } 
  40.         new Count().count(arr); 
  41.     } 

供大家参考。