最简单的修改HashMap value值的方法

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

 

[java][/java] view plaincopy

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

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

 

 

[java][/java] view plaincopy

  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,统计出现次数最多和最少的元素

 

[java][/java] view plaincopy

  1. import java.util.*;
  2. class   Count
  3. {
  4.     public void count(int[] arr)
  5.     {
  6.         int num=0;
  7.         Map<Integer,Integer> map=new HashMap<Integer,Integer>();
  8.         for(int i=1;i<=10;i++)
  9.         {
  10.             map.put(i,num);
  11.         }
  12.         for(int i=0;i<arr.length;i++)
  13.         {
  14.             /*Iterator it = map.entrySet().iterator();
  15.             while(it.hasNext())
  16.                 {
  17.                     Map.Entry m=(Map.Entry)it.next();
  18.                     if(arr[i]==(int)m.getKey())
  19.                         map.put((int)m.getKey(),(int)m.getValue()+1);
  20.                 }*/
  21.                 for(Map.Entry<Integer,Integer> m:map.entrySet())
  22.                 {
  23.                     if(arr[i]==(int)m.getKey())
  24.                         map.put((int)m.getKey(),(int)m.getValue()+1);
  25.                 }
  26.         }
  27.         for(Map.Entry<Integer,Integer> m:map.entrySet())
  28.         {
  29.             System.out.println(“”+m.getKey()+”出现的次数为:”+m.getValue()+”次”);
  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.     }
  42. }

供大家参考。

标签