计算字符串中各个字符出现的次数
2012-06-02 15:10:28 来源:WEB开发网核心提示:package 六二;import java.util.HashMap;import java.util.Iterator;import java.util.Map;public class 计算一个字符串中各个字符出现的次数 {public static void main(String[] args) {Strin
package 六二; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class 计算一个字符串中各个字符出现的次数 { public static void main(String[] args) { String str = "abcdeaaaa"; HashMap<Character, Integer> strhash = new HashMap<Character, Integer>(); int num = 0; int count = 0; for (int i = 0; i <= str.length() - 1; i++) { char c = str.charAt(i); int temp = 0; for (int j = 0; j <= str.length() - 1; j++) { num = str.indexOf(c, temp); if (num != -1) { count++; temp = num + 1; continue; } else { strhash.put(c, count); count = 0; break; } } } // List<Integer> strlist=new ArrayList<Integer>(); // Collection<Integer> strcount=strhash.values(); // Iterator<Integer> iter=strcount.iterator(); // while(iter.hasNext()) // { // int a=iter.next(); // strlist.add(a); // System.out.println(strlist); // } // 上面是访问hashmap中的value值 // 下面是获得一个做为map.entry(k,v)做为一个整体的值 // 而且是效率最高的一种写法。 Iterator iter = strhash.entrySet().iterator();// 返回一个set集合 while (iter.hasNext()) { Map.Entry<Character, Integer> entry = (Map.Entry<Character, Integer>) iter .next(); Object key = entry.getKey(); Object value = entry.getValue(); System.out.println(key + "=" + value); } // Set<K> keySet() // 返回此映射中包含的键的 Set 视图。 写的很清楚就是key的Set // Set<Map.Entry<K,V>> entrySet() // 返回此映射中包含的映射关系的 Set 视图。 // 也是一个Set,而Set中每个元素是内部类Map.Entry。 // 下面也是一种获得的方法 // 思路是通过先获得hashmap中的键值,然后用get方法来获得相对应的值。但是这个值相对来说是效率低的。 Iterator iter1 = strhash.keySet().iterator(); while (iter1.hasNext()) { Object key = iter1.next(); Object value = strhash.get(key); System.err.println(key + "=" + value); } } }
更多精彩
赞助商链接