java数组元素重复次数最大值

package lianxi;

import java.util.HashSet;
import java.util.Set;

public class Demo8
{

	/**
	 * @file Demo8.java
	 * @author 變脸
	 * @datetime 2016-1-10 上午11:04:37 
	 * 
	 */
	public static void main(String[] args)
	{
		Object[] obj1   = {"aa","bb","cc","dd","aa","dd","ee","dd","ff","c","dd","rr","aa","aa"};
		//把数组放进set,去除重复
		Set<Object> set = new HashSet();
		for(Object o:obj1)
		{
			set.add(o);
		}
		//把set里数据放入新的数组obj2[]
		Object[] obj2 = set.toArray();
		
		//再做一个数组,存放obj2数组的个数
		int [] counts = new int[obj2.length];
		
		//定义数组中元素出现最大次数k
		int k = 0;
		//双重循环,对比obj1 obj2
		for(int i=0;i<obj2.length;i++)
		{
			int count=0;
			for(int j=0;j<obj1.length;j++)
			{
				if(obj2[i]==obj1[j])
				{
					count++;
				}
			}
			//如果次数大于最大次数k,则count赋值给k
			if(count>k)
				k=count;
			//次数存入counts[]
			counts[i]=count;
		}
		System.out.println("最大次数是"+k);
		
		//最大次数的数可能不止一个,我们用counts[]里面和最大次数相同值的下标,去取obj2[]里面的元素,得到最大次数元素
		for(int i=0;i<counts.length;i++)
		{
			if(counts[i]==k){
				System.out.println("出现次数最大的数为:"+obj2[i]);
			}
		}
		

	}

}

经验分享 程序员 微信小程序 职场和发展