2015-05-20 33 views
0

我正在嘗試讀取大文件。每行包含文件lastName, firstName
我如何打印lastName的前5次出現和firstName的前5次出現?集合:通過從文件中讀取來打印前五個事件

直到現在我想到了使用TreeMap。但它按鍵而不是值排序。解決這個問題最好的收集是什麼?

+4

你所說的「頂部」是什麼意思?按頻率?按字母順序 ? –

+0

我認爲,您必須編寫自己的List集合實現。或嘗試找到一些圖書館。 – Insomniac631

+0

@JihedAmine按頻率, –

回答

3
  • 創建一個包含lastNames a鍵的Map<String, Integer>,以及它們對應的頻率值。爲名字做同樣的事情。
  • 填充地圖讀取文件
  • 創建包含地圖(一個列表對於每個地圖)
  • 這些列表使用由他們的值進行比較的條目的自定義比較器之類的所有條目的List<Map.Entry<String, Integer>>(由頻率即),按降序排列
  • 挑選名單的5個第一要素,並提取它們的名字
0

您需要多個集合。前兩個集合記錄了姓和名的計數。一旦你有了這些,你可以創建一個結構,按照計數進行排序並將其與名稱關聯起來。