毎日1本のプログラミングの問題(2)------文字列の中で個数の最も多い文字列の個数を求めて、そして印刷します


1つの文字列を指定し、同じ文字の個数を見つけて、最も多くの文字列を印刷します.1つの文字列にはa~zの複数の文字が含まれている可能性があり、例えばStringdata="aavzcadfsfsdhshgWasdfasdf"のように、出現回数が最も多いその文字と回数を求め、複数の重複があれば求められる.〔金山会社の面接問題
(最初はこの問題をするときは配列に保存して、実習会社に来て、ボスは、一般的にこのような文字列を求める問題はjavaの中で一般的にあなたの集合の知識を試験して、それからネット上の解答を見ると、やはりすべてこのようにして、しかも時間の複雑さは小さい)自分の書いたプログラムを伝えて、誰かがもっと良い方法があることを望んでいます
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;








public class FindRepeat {
  public static void doString(String str){
	  char[] array=str.toCharArray();
	  ArrayList list=new ArrayList();
	  TreeSet set=new TreeSet();
	  for(int i=0;imax)&&(value>1)){
			max=value;
		}
	}
	Set set2=hm.entrySet();
	Iterator iterator=set2.iterator();
    while(iterator.hasNext()){
    	Map.Entry mapentry=(Map.Entry)iterator.next();
		if(mapentry.getValue().equals(max)){
			System.out.println("       :"+mapentry.getKey());
			System.out.println("      :"+max);
		}
	
    }
  }
  public static void main(String[] args){
	  String strInput = new String("aavzcadfdsfsdhshgWasdfasdf");
	  doString(strInput);
  }
}