2

テキスト ファイルからマップに渡したデータを印刷したいと考えています。ただし、データを印刷すると、プログラムは行を 2 回印刷します。それを修正する方法はありますか?データを正確に印刷したいだけで、重複はありません。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;

public class ReadToHashmap {
    public static void main(String[] args) throws Exception 
    {

        Map<String, String> map = new HashMap<>();
        final BufferedReader bufferedReader = new BufferedReader(new FileReader("C:\\Documents and Settings\\stajn\\Desktop\\Cache_Son\\Cache\\Testing.txt"));




         if (bufferedReader != null) {
            String line;


         while ((line = bufferedReader.readLine()) != null) {
             String parts[] = line.split("\n");
             map.put(parts[0],parts[0]); 


            }

            bufferedReader.close();


            Iterator iterator = map.keySet().iterator();  

        while (iterator.hasNext()) 
    {  
        String key = iterator.next().toString();  
        String value = map.get(key).toString();  

        System.out.println(key + " " + value);  
    }  
        }


    }
}
4

3 に答える 3

0

あなたは次のようなマップを入れています

 map.put(parts[0],parts[0]); 

ここでキーと値は同じです。印刷するとき

 System.out.println(key + " " + value);  

どちらも同じように印刷されます。

必要ですか?

 System.out.println("value=" + value);  
于 2013-09-04T08:36:16.697 に答える
0

MAP の VALUE のように、両方の行を KEY に入れています。

あなたのコードでは、KEYとVALUEを印刷しているので、行を複製しています

次を使用して、マップ上の値のコンテンツのみを印刷できます。

Iterator iterator = map.values().iterator();

while (iterator.hasNext()) {   

    System.out.println(iterator.next());  
} 
于 2013-09-04T08:38:00.220 に答える