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

标签 java file bufferedreader

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/

相关文章:

java - 在 Java 程序中执行另一个 jar

c++ - 在 fstream 上使用 << 进行写入

java - 如何列出当前目录中的文件?

java - bufferedReader 用于获取 K 均值聚类文件的工作原理

java - 我如何使用带有进度条的改造库?

java - 动态优化线程数

java - JPQL 更新查询

file - 如何将两个文件合并为一个?

java - 输入流和BufferedReader

java - 在文本文件中搜索多行字符串