public class GetMax
{
    public static void main(String[] args)
    {
        int[] source = {1,3,6,7,7,7,9,9,9,6,5,5,3,1,1};
        int[] count = new int[source.length];
        for(int i = 0;i < source.length;i++)
        {
            count[source[i]]++;
        }
        
        int max = count[0];
        int sub = 0;
        for(int i = 0;i < count.length;i++)
        {
            if(count[i] >= max)
            {
                max = count[i];
                sub = i;
            }
        }
        System.out.println("下标是: " + sub + "出现次数是: " + count[sub]);
    }
}昨天看的一个帖子,不过有句话我没看懂
count[source[i]]++;
请问这句是什么意思,如果i=0,我是这么理解的
count[source[0]]++;变成count[1]=count[1]+1;
肯定是不对的,刚学java,希望高手指点

解决方案 »

  1.   

    就是统计source中各元素的个数:如果相同的元素有多个那么source[i]就相等,那么count[source[i]]++就会在同一下标的位置上加1count 是用来保存各元素的个数的。 其对应的下标就是source中的元素,对应下标的值就是元素的个数。
      

  2.   

    你理解的对啊,第一次,count[source[0]]++就是count[1]++,也就是count[1] = count[1] + 1 = 1,这个程序就是把数组source中的每个值做个统计,相同的就累加
      

  3.   

    程序做的是统计source中的数字出现次数。
    首先必须需要source中的每个值<source.length。
    count[source[i]]++做的是取出source中的值并使用该值定位count数组中的数据+1,使用count数组记录
    source中的值出现次数。source[i]类似于Map中的key,而count[source[i]]就是Map中的value.