java集合里如何判断中出现最多的元素

 我来答
Paserity
2015-10-03
知道答主
回答量:3
采纳率:0%
帮助的人:4.2万
展开全部
//我的思路是先排序,遇到重复的元素就存储起来,最后输出重复次数最多的元素
//以整数为例,函数如下:
static int sort(int[] a){
int k,temp;
boolean repeat=false;//判断是否是之前的元素
Vector<Integer> v=new Vector<Integer>();
//储存所有重复的元素个数
Vector<Integer> number=new Vector<Integer>();
//储存每个个数对应的元素
for(int i=0;i<a.length-1;i++){
k=i;
for(int j=i+1;j<a.length;j++)
if(a[k]>a[j]){
k=j;
}
if(k!=i){
temp=a[k];
a[k]=a[i];
a[i]=temp;
}
if(i!=0){
if(a[i]==a[i-1]){
if(repeat){
v.set(v.size()-1, v.elementAt(v.size()-1)+1);
}else{
v.addElement(2);
number.addElement(a[i-1]);
}
repeat=true;
}else{
repeat=false;
}
}
}
int index=max(v);//得到v中最大元素所对应的下标
return number.elementAt(index);
}
static int max(Vector<Integer> v){
int temp=v.elementAt(0);
int index =0;
for(int i=0;i<v.size();i++){
if(v.elementAt(i)>temp){
temp=v.elementAt(i);
index=i;
}
}
return index;
}
//楼下的方法更好。
xjf5562
2015-10-03 · TA获得超过1190个赞
知道小有建树答主
回答量:896
采纳率:75%
帮助的人:748万
展开全部
将此集合中所以的元素,放入一个Map中,统计一下:
比如所有的元素为String类型,存放于list中,
Map<String,Integer> map=new HashMap<String,Integer>();
for(String s:list)
{
if(map.containsKey(s))

{
int qty=map.get(s);

map.put(s,qty+1);
}

else
{
map.put(s,1);

}
}
到这儿,再统计一下map中的最大值就可以了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式