I am reading 1 million lines of data from the file it contains data of the movies in a given format FILE DATA IMAGE.
MovieDetails 文件包含简单的获取和设置函数
问题 1 我想打印 hashmap 的数据,似乎普通方法在这里不起作用,我还想打印多个值(movieTitle 和 Genres)。
问题2 基本上,当我将 100 万条记录放入哈希表中时,它会放入所有键,但每个键都包含相同的值,即最后一个值(请参阅文件数据图像),当我调试它时,它会向我显示 3952 个(键和value),但在输出中我只得到 1422,但在重写我的类 toString() 之后,它显示了 1539(键和值)。 NEW OUTPUT AFTER OVERRIDING 请查看输出图像OUTPUT IMAGE
请向我解释为什么会出现这些错误以及如何纠正 谢谢
MovieDetails mb = new MovieDetails();
Hashtable<Integer, MovieDetails> moviesTable=new Hashtable<Integer, MovieDetails>();
try {
String contentLine;
br = new BufferedReader(new FileReader("C:/Users/hp/Desktop/movies.dat"));
while ((contentLine = br.readLine()) != null) {
mb.setMovieID(Integer.valueOf(contentLine.split("::")[0]));
mb.setTitle(contentLine.split("::")[1]);
mb.setGenres(contentLine.split("::")[2]);
moviesTable.put(mb.getMovieID(), mb);
}
for (Entry<Integer, MovieBean> entry : moviesTable.entrySet()) {
Integer key = entry.getKey();
MovieBean value = entry.getValue();
System.out.println ("Key: " + key + " Value: " + value);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
**OUTPUT IMAGE**
[1]: /image/OZi4e.jpg
最佳答案
您的 MovieDetails toString 方法应类似于:
public String toString() {
return( "" + getTitle() + " " + getGenres() );
}
同时移动:
MovieDetails mb = new MovieDetails();
至
while ((contentLine = br.readLine()) != null) {
MovieDetails mb = new MovieDetails();
(then rest of loop)
关于java - 打印哈希表内的多值数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47760002/