下面是我写出来的代码,字符集合中,“1”和“2”都出现了3次,均为最大出现次数,因为“1”先出现,则输出字符“1”和它出现的次数3次。但是我只能做到把1和2同时输出,怎样修改,还有没有更简单,高效的方法
import java.util.*;
public class Test19
{
public static void main(String[] args)
{
int max=1;
String[] strs={"3","1","4","7","2","1","1","2","2"};
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;
}
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(strs[i]+"出现了"+max+"次");
}
}

}运行结果:
1出现了3次
2出现了3次

解决方案 »

  1.   

    没太明白楼主的意思,要想得到了第一个最多的字符即结束,加一"break"即可。
    if(count==max)
    {
    System.out.println(strs[i]+"出现了"+max+"次");
    break;//不再判断了。
    }
      

  2.   

    意思是把这个字符数组{3,1,4,7,2,1,1,2,2}中出现次数最多且次数最多当中最小的输出,
    比如:1和2都是出现3次,输出的话就只要把1和它出现的次数输出来,用break的话直接判断了,改一下数组里面的值的话,输出就是错误的了
      

  3.   

    试试用这个代码,用数组来计算次数。public class Test1
    {
    public static void main(String[] args)
    {int[] count = new int[9];
    String[] strs={"3","1","4","7","2","1","1","2","2"};
    for(int i=0;i<strs.length;i++)
    {for(int j=0;j<strs.length;j++)
    {
    if(strs[i].equals(strs[j]))   
    count[i]++;
    }}
    int max = count[strs.length-1];
    int maxIndex =0;
    for(int i=strs.length-1;i>=0;i--){
    if(max <= count[i]){
    max = count[i];
    maxIndex = i;
    }
    }
    System.out.println(strs[maxIndex]+"出现了"+max+"次");}}
      

  4.   

    加了点语句供参考:
    String minString=null; //保存那个最小的字符串.
    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)
    {
    if(minString==null) //第一次找到一个出现最多的字符串
    { //把这个值放在minString里。
        minString=strs[i];
            }
         else //再次出现,进行比较,新出现的字符串
    { //“小于”上次出现的,更新。三目运算。
        minString=Integer.parseInt(minString)>
        Integer.parseInt(strs[i])?strs[i]:minString;
    }
    }
    }
    System.out.println(minString+"出现了"+max+"次");