黑马程序员技术交流社区
标题:
怎么用TreeMap里的Value做比较。
[打印本页]
作者:
李会成
时间:
2013-1-30 14:01
标题:
怎么用TreeMap里的Value做比较。
本帖最后由 李会成 于 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作为比较条件。
作者:
黄锦成
时间:
2013-1-30 14:14
你参考一下我这个
http://bbs.itheima.com/thread-36817-1-1.html
作者:
李会成
时间:
2013-2-1 11:09
黄锦成 发表于 2013-1-30 14:14
你参考一下我这个http://bbs.itheima.com/thread-36817-1-1.html
谢谢斑竹,跪求给点技术分吧
作者:
李培根
时间:
2013-2-18 11:40
请勿复制他人帖子,技术分不是入学的门槛而是为了帮助大家学习而存在的。
请勿再次发此类帖子了!
此贴就关闭了。此后如有再次发现直接封禁处理,请看到此贴的会员也加以注意。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2