1.求一个数组中的出现次数最多的元素的个数
思路:使用HashMap存储,key是每个元素,value是一个LinkedList,这个链表存储了key对应所有的元素(即相同的元素),最后遍历找出LinkedList对应size最大的;
public class GetMostFrequentInArrayList {
public static <T> int getMostFrequentByMap(T a[]){
if (a == null || a.length==0){
return 0;
}
int result = 0;
int length = a.length;
HashMap<T,LinkedList<T>> hashMap = new HashMap<>();
for (int i=0;i<length;i++){
if (hashMap.get(a[i])!=null){
hashMap.get(a[i]).add(a[i]);
}else {
LinkedList<T> linkedList = new LinkedList<>();
linkedList.add(a[i]);
hashMap.put(a[i],linkedList);
}
}
//遍历找出出现次数最大的元素
LinkedList<T> list = null;
for (LinkedList<T> temp : hashMap.values()){
if (list == null){
list = temp;
continue;
}
if (temp.size() > list.size()){
list = temp;
}
}
result = list.size();
return result;
}
public static void main(String[] args){
Integer[] a = {1,23,42,1,3,123,4,122,33,22,11,23,1,1,};
System.out.print(getMostFrequentByMap(a));
}
}
博客介绍了求数组中出现次数最多元素个数的方法。思路是用HashMap存储,key为元素,value是存储相同元素的LinkedList,最后遍历找出对应LinkedList中size最大的。
5万+

被折叠的 条评论
为什么被折叠?



