java 如何快速求一个字符串数组中出现最多次数的字符串?字符串数组存在大量重复.要最快速度.

 我来答
红佛壁纸
2012-03-06 · TA获得超过351个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:116万
展开全部
这样就OK了,你试一下
class Test
{
public static void main(String[] args)
{
int max=1;
String[] strs={"a","b","f","a","d","c","e","d","a","d"};
for(int i=0;i<strs.length-1;i++)
{
int count=1;
for(int j=i+1;j<strs.length;j++)
{
if(strs[i].equals(strs[j]))
count++;
}
if(max<count)
max=count;
}
System.out.println("重复最多次数为:"+max);
for(int i=0;i<strs.length-1;i++)
{
int count=1;
for(int j=i+1;j<strs.length;j++)
{
if(strs[i].equals(strs[j]))
count++;
}
if(count==max)
System.out.println("重复最多次("+max+")的字符串为:"+strs[i]);
}
}
}
更多追问追答
追问
有点复杂了. 我自己想了一个办法,你看行不行.我用hashmap存储这些字符串,如果发现重复就把value加1,说明这个词多出现了1次,然后添加2个标记,一个标记当前最大value,一个存储当前最大value对应的字符串. 一次遍历之后得到最大频率的字符串. 这样是不是效率些?
追答
关键是怎么判断重复,并且重复了多少次,都差不多
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dinggang9527
2012-04-28
知道答主
回答量:2
采纳率:0%
帮助的人:2.8万
展开全部
public static String[] arrayUnique(String[] a){
List<String> list = new LinkedList<String>();
for (int i = 0; i < a.length; i++) {
if(!list.contains(a[i])){
list.add(a[i]);
}
}
return (String[])list.toArray(new String[list.size()]);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式