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

说到遍历,首先应该想到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();   
Map<Integer,String> map = new HashMap<>();   
  
    Iterator it = map.entrySet().iterator();   
  
    while (it.hasNext()) {   
  
        Map.Entry entry = (Map.Entry) it.next();   
  
        Object key = entry.getKey();   
  
        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.                 } 
for(Map.Entry<Integer,Integer> m:map.entrySet())
				{
					if(arr[i]==(int)m.getKey())
						map.put((int)m.getKey(),(int)m.getValue()+1);
				}

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

随机生成长度为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.     } 
import java.util.*;
class	Count 
{
	public void count(int[] arr)
	{
		int num=0;
		Map<Integer,Integer> map=new HashMap<Integer,Integer>();
		for(int i=1;i<=10;i++)
		{
			map.put(i,num);
		}
		for(int i=0;i<arr.length;i++)
		{
			/*Iterator it = map.entrySet().iterator();    
			while(it.hasNext())
				{     
					Map.Entry m=(Map.Entry)it.next();
					if(arr[i]==(int)m.getKey())
						map.put((int)m.getKey(),(int)m.getValue()+1);
				}*/
				for(Map.Entry<Integer,Integer> m:map.entrySet())
				{
					if(arr[i]==(int)m.getKey())
						map.put((int)m.getKey(),(int)m.getValue()+1);
				}
		}
		for(Map.Entry<Integer,Integer> m:map.entrySet())
		{
			System.out.println(""+m.getKey()+"出现的次数为:"+m.getValue()+"次");
		}
	}
	
	public static void main(String[] args) 
	{
		Random rd=new Random();
		int[] arr=new int[100];
		for(int i=0;i<100;i++)
		{
			arr[i]=rd.nextInt(10)+1;
		}
		new Count().count(arr);
	}
}

供大家参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值