1.先贴出求解任意输入的一字符串中各字符的个数
Scanner scan = new Scanner(System.in); String inputStr = scan.nextLine(); char[] inputArr = inputStr.toCharArray(); Map<Character, Integer> map = new HashMap<>(); for (int i = 0; i < inputArr.length; i++) { char ch = inputArr[i]; map.put(ch, 0); } for (int i = 0; i < inputArr.length; i++) { char ch = inputArr[i]; if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){ if(map.containsKey(ch)){ int value = map.get(ch)+ 1; map.put(ch, value); } } } System.out.println(map);
2.使用Iterator迭代器遍历Map键值对
Set<Object> set = map.keySet(); Iterator<Object> it = set.iterator(); while (it.hasNext()) { Object key = it.next(); Object value = map.get(key); System.out.println(key +":"+ value); }
Java中的Iterator功能比较简单,并且只能单向移动:
(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
(2) 使用next()获得序列中的下一个元素。
(3) 使用hasNext()检查序列中是否还有元素。
(4) 使用remove()将迭代器新返回的元素删除。
Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。