说到遍历,首先应该想到for循环,然而map集合的遍历通常情况下是要这样在的,先要获得一个迭代器。
- 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循环也是可以的,很简洁吧~
- 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,统计出现次数最多和最少的元素
- 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);
- }
- }
供大家参考。