标签:iterator hashmap 遍历 扩展 java
任务:
1、统计字符数组中相同数据个数。
2、需要用set实现。
3、需要用iterator实现。
第一次出现时,我只是简单的在纸上写了点思路,事后发现除了一些具体属性可能因为不熟悉之外,大体还是成功的:
我将思路化为代码后实现如下:
public static void main(String[] args) { String[] arrays=new String[]{"zhangsan","andi","andi","zhangsan","wangwu","pianliu"}; Arrays.sort(arrays, new SortComparator()); Set<String> setData=new HashSet<String>(); for(int i=0;i<arrays.length;i++){ setData.add(arrays[i]);//具备排重功能 } //计算相同数据出现的次数 Map<String,Integer> countMap=new HashMap<String,Integer>(); for(int j=0;j<arrays.length;j++){ if(countMap.containsKey(arrays[j])){//如果存在那么获取value自增 int count=countMap.get(arrays[j])+1; countMap.put(arrays[j], count); }else{ countMap.put(arrays[j], 1); } } //遍历set Iterator<String> it= setData.iterator();//不重复数据 while(it.hasNext()){ String data=it.next(); System.out.print(data+" = "+countMap.get(data)); System.out.println(); } }很明显,代码中我添加了一个比较类SortComparator,本来我打算将数据统计完成后,按照字母从小到大的方式输出,虽然是画蛇添脚,但是终归还是比较有意思,上面的代码并没有实现到这点,主要原因是set和map存储数据是无序的,如果非要实现,需要在代码末端进行修改。
class SortComparator implements Comparator<String>{ public int compare(String o1, String o2) { char c1 = ((String) o1).charAt(0); char c2 = ((String) o2).charAt(0); return c1-c2; } }扩展:该功能可以用于统计文章中的相同字数或者词重复出现多少次。
标签:iterator hashmap 遍历 扩展 java
原文地址:http://blog.csdn.net/trsli/article/details/44083015