黑马程序员技术交流社区
标题:
帮我看看这代码还有什么可以优化的
[打印本页]
作者:
朱皓
时间:
2012-2-23 20:48
标题:
帮我看看这代码还有什么可以优化的
public class statString {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str="abadcdffbaeba";
System.out.println(CharCount(str));
}
public static String CharCount(String str)
{
char[] ch=str.toCharArray();
TreeMap<Character, Integer> map=new TreeMap<Character, Integer>();
for (int i = 0; i < ch.length; i++)
{
Integer value=map.get(ch[i]);
if(value==null)
{
map.put(ch[i], 1);
}
else {
value=value+1;
map.put(ch[i], value);
}
}
ArrayList<Map.Entry<Character,Integer>> infoidsList=
new ArrayList<Map.Entry<Character,Integer>>(map.entrySet());
Collections.sort(infoidsList,new myComparator());
StringBuilder sBuilder=new StringBuilder();
for (int i = 0; i < infoidsList.size(); i++) {
//System.out.println(infoidsList.get(i).toString());
sBuilder.append(infoidsList.get(i).getKey()+":"+infoidsList.get(i).getValue().toString()+",");
}
String result=sBuilder.deleteCharAt(sBuilder.length()-1).toString();
return result;
}
}
复制代码
import java.util.Comparator;
import java.util.Map;
import java.util.Map.Entry;
public class myComparator implements Comparator<Map.Entry<Character,Integer>>
{
@Override
public int compare(Entry<Character, Integer> o1,
Entry<Character, Integer> o2) {
// TODO Auto-generated method stub
return o1.getValue()-o2.getValue();
}
}
复制代码
作者:
tanlei200620
时间:
2012-2-23 21:50
程序有一个漏洞,就是 将String str="abadcdffbaeba"; 替换为 String str = "";时会出现异常, 意思就是你的 第42行代码需要判断 !!须修改
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2