2017-02-05 13 views
-4

私はratings.datファイルを持っています。それは5つのフィールドを含んでいます。彼らはuserid、movieid、評価、年齢、movienameです。 MOVIEIDは映画が評価> 3 を持っているされた条件をチェックし、私はハッシュマップにファイルをロードする1 3450のユーザーID 1 6400への評価は5javaでハッシュマップを使用して.datファイルからデータを取り出す方法

  1. の外に与えられたユニークです
  2. ユーザーが視聴した上位10の映画
  3. 少なくとも20の映画を視聴したユーザーが上位20の映画を選択したいという条件で、上位20の映画を並べ替える必要があります。

私はSQLを使用すべきではありません。 100%のJavaコードが必要です。私はこれまでハッシュマップでファイルを読み、そのファイルの内容を印刷しています。

import java.io.*; 
import java.util.*; 

public class Output{ 

    public static void main(String[] args) throws FileNotFoundException, IOException { 

    HashMap< Integer, String > hash = new HashMap< Integer, String >(); 
    BufferedReader rd = new BufferedReader(new FileReader ("resources/ratings.dat")); 
    String line = "::"; 

    int i = 0; 
    while ((line = rd.readLine()) != null){ 
     hash.put(i, line); 
     i++; 
    } 
    for (int j = 0 ; j < hash.size() ; j++){ 
     System.out.println(hash.get(j)); 
    } 
    } 
} 
+0

失敗して学習するために、何かを試してみてください。あなたはあなたの課題の半分を完了し、おそらく残りの半分をここで過ごしたでしょう。私が示唆しているのは一度です。 – nullpointer

+0

「HashMap」を使用する特別な理由はありますか?私にとってそれを尋ねるのは最良の選択のようには思えない。 –

+0

あなたの '.dat'ファイルの行の形式がわからないので、映画の評価が> 3.2であるかどうかを判断する方法はわかりません。さらに悪いことに、5つのフィールドには、ユーザーが視聴した上位10の映画を見つけるのに必要なデータが含まれていないようです。私はあなたに不可解なことを尋ねています。 –

答えて

0
  • 5つの分野を言っている作品を表すクラスを作成します。
  • ファイルの行を繰り返し、Movieオブジェクトのリストを埋めます。
  • ムービーオブジェクトのリストを並べ替えるには、コンパレータまたは同等のインターフェイスを使用します。
  • 次に、list.sort()を呼び出します。

  • リストの代わりに、SetやMAPのようなコレクションを使用できます。

希望します。

関連する問題