gpt4 book ai didi

java - 打印哈希表内的多值数据

转载 作者:行者123 更新时间:2023-11-30 02:17:45 27 4
gpt4 key购买 nike

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

MoviesTable DEBUG data 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com