如何仅在java中使用哈希映射从.dat文件检索数据
我有一个如何仅在java中使用哈希映射从.dat文件检索数据,java,hashmap,Java,Hashmap,我有一个ratings.dat文件。它包含5个字段。它们是userid、movieid、rating、age、moviename。movieid在1到3450之间是唯一的。用户标识1到6400。评分为5分 我想将文件加载到哈希映射中,检查电影分级>3的条件 用户观看的十大电影 我想按照至少看过20部电影的用户选择前20部电影的条件对前20部电影进行排序 我不应该使用SQL。我想要100%的Java代码。到目前为止,我一直在做:读取hashmap中的文件并打印该文件的内容 import java.
ratings.dat
文件。它包含5个字段。它们是userid、movieid、rating、age、moviename。movieid在1到3450之间是唯一的。用户标识1到6400。评分为5分
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));
}
}
}
import java.io.*;
导入java.util.*;
公共类输出{
公共静态void main(字符串[]args)抛出FileNotFoundException、IOException{
HashMaphash=newhashmap();
BufferedReader rd=新的BufferedReader(新的文件阅读器(“resources/ratings.dat”);
字符串行=“::”;
int i=0;
而((line=rd.readLine())!=null){
hash.put(i,行);
i++;
}
对于(int j=0;j
- 创建一个表示电影的类,该类有5个字段
- 迭代文件行并填充电影对象列表
- 使用comparator或Comparable接口对电影对象列表进行排序
- 然后调用list.sort()
- 您可以使用集合(如集合或映射)代替列表
希望这能有所帮助。请自己尝试一些失败和学习的东西。你刚刚完成了一半的作业,可能会在这里把另一半传下去。我建议您尝试一次。您想使用
HashMap
有什么特别的原因吗?问,因为对我来说这似乎不是最好的选择。因为我不知道你的.dat
文件的行格式,我不知道如何确定一部电影的评级是否>3.2。更糟糕的是,这5个字段似乎没有包含查找用户观看的前10部电影所需的数据。恐怕你是在问一个不可能的问题。使用hashmap并没有什么特别的原因,只是我已经尝试过了。你可以通过计算每部电影的用户数量来找到前10名。现在,@DivagarGovindan,计数应该可以了。