1. 程式人生 > >從HashMap中找出出現次數最多的鍵

從HashMap中找出出現次數最多的鍵

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;

public class Main{

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input = new Scanner(System.in);
		while(true){
			int num = input.nextInt();
			if(num == 0)
				return ;
             
            //輸入<String,Integer>鍵值對
			HashMap <String,Integer> map = new HashMap<String,Integer>();
			for(int i=0;i<num;i++){
				String tmp = input.next();
				if(map.containsKey(tmp)){
					map.put(tmp, map.get(tmp)+1);
				}else{
					map.put(tmp, 1);
				}
			}

            //放入list中排序,找出出現次數最大的鍵即可
			String maxKey = null;
			int value = 0 ;
			ArrayList list = new ArrayList();
			Iterator ite = map.entrySet().iterator();
			while(ite.hasNext()){
				Map.Entry entry =(Map.Entry)ite.next();
				value = Integer.parseInt(entry.getValue().toString());
				list.add(entry.getValue());
				Collections.sort(list);          
				if(value == Integer.parseInt(list.get(list.size()-1).toString())){
					maxKey = entry.getKey().toString();
				}
			}
			System.out.println(maxKey);
		}

	}
}


相關推薦

HashMap出現次數

import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.

一億個ip出現次數的IP(分治法)

/* 1,hash雜湊 2,找到每個塊出現次數最多的(默認出現均勻)—–>可以用字典樹 3,在每個塊出現最多的資料中挑選出最大的為結果 */ 問題一: 怎麼在海量資料中找出重複次數最多的一個 演算法思想: 方

1億個ip訪問次數的IP

問題一:怎麼在海量資料中找出重複次數最多的一個演算法思想:方案1:先做hash,然後求模對映為小檔案,求出每個小檔案中重複次數最多的一個,並記錄重複次數。        然後找出上一步求出的資料中重複次數最多的一個就是所求(如下)。問題二:        網站日誌中記錄了使用

BAT面試上機題3億個ip訪問次數的IP詳解

我們面臨的問題有以下兩點:1)資料量太大,無法在短時間內解決;2)記憶體不夠,沒辦法裝下那麼多的資料。而對應的辦法其實也就是分成1)針對時間,合適的演算法+合適的資料結構來提高處理效率;2)針對空間,就是分而治之,將大資料量拆分成多個比較小的資料片,然後對其各個資料片進行處理,最後再處理各個資料片的結果。原文

海量日誌資料__怎麼在海量資料重複次數的一個

 問題一: 怎麼在海量資料中找出重複次數最多的一個 演算法思想: 方案1:先做hash,然後求模對映為小檔案,求出每個小檔案中重複次數最多的一個,並記錄重複次數。         然後找出上一步求出的資料中重複次數最多的一個就是所求(如下)。 問題二:    

Problem E: 出現次數的字母

Description 找出出現次數最多的字母 Input 現在給你一行密文,全部由小寫字母組成(不超過100個),你要找出出現次數最多的那個字母 Output 每組輸出1行,輸出出現次數最多的那個字母 Sample Input aaaaaaabbc nnnn

海量日誌資料,出現次數的IP地址。

import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java

python(dict字典相關知識以及小例子:生成一個列表,存放100個隨機整數,出現次數的數字)

一、什麼是字典? #字典的使用 #子字典是一個容器類,可以用來儲存資料 #列表儲存資料特點:1、有序的 2、每一個都有一個索引,通過索引可以對資料進行查詢,修改,刪除 #字典儲存資料: key:v

Java-實現陣列一個數字出現次數的數字

import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; public class Mytest {/*** @par

8.7在陣列出現次數大於N÷K的數

題目 給定一個整形陣列arr,再給定一個整數K,列印所有出現次數大於N/K的數,如果沒有這樣的數,列印提示資訊。 首先分析K=2這個特殊情況,有以下思路: 排序後,取陣列中間的數。但該方法的時間複雜度為排序演算法的時間複雜度O(NlogN)。

陣列出現次數超過一半的數

劍指offer中的題目,利用快速排序的partition函式進行解決,程式碼如下 class Solution { public: int partition(vector<int> numbers,int p,int r) {

十萬個數據,重複次數的十個資料並列印

利用集合 ,找出十萬個數據中,重複次數最多的十個資料並列印. 先通過Hashmap儲存, key為資料,value為它出現的次數. 然後用優先順序佇列,儲存型別為Map.Entry,重寫比較器類,利用value進行比較. 優先順序佇列中利用小根堆形式,只儲存十個. 接下來遍歷其他的,如果比小

重複次數的數字

問題 給定一個大小為n的陣列,該陣列包含數字的範圍在 [0...k-1], k是一個正整數,k < = n。在這個陣列找到重複次數最多的數字。 例如, 假設k= 10給定的陣列是arr[] = {1, 2, 2, 2, 0, 2, 0, 2, 3, 8, 0,

十億資料出現的數以及出現次數

package org.example.bigdata; import java.util.Collections; import java.util.HashMap; import java.util.LinkedList; import java.util.List

js常會問的問題:字符串出現次數的字符。

spl object 16px 說明 最大數 bsp 賦值 out 數列 一、循環obj let testStr = ‘asdasddsfdsfadsfdghdadsdfdgdasd‘; function getMax(str) {

該字符串出現次數的那個字符

esp 表示 輸出 ive 出現次數 output post 字典 如果 /*時間限制 C/C++ 3s 其他 6s, 空間限制 C/C++ 32768k 其他 65535k 題目描述 給定一個長度不限的字符串,請找出該字符串中出現次數最多的那個字符,並打印出該字符

Problem A: 零起點學演算法91——一個數組出現次數的那個元素

#include<stdio.h> int main() { int n,a[20],b[20]={0}; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) {

演算法練習08 字串出現次數的字元

題目 找出一個字串中出現次數最多的字元 const str = 'asdfaaaa' 最後的返回值是字串'a' 實現 嗯,我略加思考(半個小時左右),給出了一個複雜的方案,一個屎一般的方案 屎一般的方案 我的方案是利用redcue,計算出了每個字串出現的頻次

js演算法:一個字串出現次數的字元!

在其他部落格裡面看到了一種方法: 這個方法很簡單,但是15-20行程式碼對於萌新來說,不是很好理解,因此我給出了以下這個方案,先想辦法統計出所有字母各出現的次數,然後把這些次數push到一個數組裡面,找出最大的那個數(我這裡是通過排序找出的最大數),最大數有了,該數對應的字元不就很容易

python序列出現次數的元素之Counter物件

解決此類問題我們將用到collections模組中的Counter類,並直接呼叫Counter類的most_common()方法或得答案。 用下面的例子來講解具體用法: 基本用法 from col