本帖最后由 李会成 于 2013-2-1 11:13 编辑
毕老师视频中这样一个例子:找出字符串中每个字符出现的次数。- import java.util.*;
- class charCountTest implements Comparable<>
- {
- public static void main(String[] args)
- {
- String s=charCount("aabbccfcdddd");
- System.out.println(s);
- }
- public static String charCount(String str)
- {
- char[] s=str.toCharArray();
- TreeMap<Character,Integer> tm=new TreeMap<Character,Integer>();
- int count=0;
- for(int x=0;x<s.length;x++)
- {
- if(!(s[x]>='a' && s[x]<='z' || s[x]>='A' && s[x]<='Z'))
- continue;
- Integer value=tm.get(s[x]);
- if(value!=null)
- {
- count=value;
- }
- count++;
- tm.put(s[x],count);
- count=0;
- }
- StringBuilder sb=new StringBuilder();
- Set<Map.Entry<Character,Integer>> entrySet=tm.entrySet();
- Iterator<Map.Entry<Character,Integer>> it=entrySet.iterator();
- while(it.hasNext())
- {
- Map.Entry<Character,Integer> me=it.next();
- Character ch=me.getKey();
- Integer value=me.getValue();
- sb.append(ch+" : "+value+"...");
- }
- return sb.toString();
- }
-
- }
复制代码 这个里面的键是Character,因为在Character中默认实现了Comparable的compareTo,所以本身就具备了比较性。
如果我想用Value做比较并输出怎么做?
映射依然是<Character,Integer> ,输出结果按照字符出现次数的大小排序,也就是说把Value作为比较条件。 |
|