0

HashMap リストを反復処理して、キーと値 (値 1 と値 2) を取得したいと考えています。この行に「型の不一致: 要素型 Object から Map.Entry> に変換できません」というエラーがあります。

for (Map.Entry<String, List<String>> entry : Map.entrySet()) 

私は何か間違ったことをしていますか?私を助けてください。これがコード全体です。

public static void main(String[] args)  {
    Map<String, List<String>> conceptMap = new HashMap<String, List<String>>();
    Map<String, List<String>> PropertyMap = new HashMap<String, List<String>>();
    try{
        Scanner scanner = new Scanner(new FileReader("C:/"));
        while (scanner.hasNextLine()){
            String nextLine = scanner.nextLine();
            String [] column = nextLine.split(":");
            if (column[0].equals ("Property")){
                if (column.length == 4) {
                    PropertyMap.put(column [1], Arrays.asList(column[2], column[3]));    
                }
                else {
                    conceptMap.put (column [1], Arrays.asList (column[2], column[3]));
                }
            }
            for (Map.Entry<String, List<String>> entry : Map.entrySet()) {
                String key = entry.getKey();
                List<String> valueList = entry.getValue();
                System.out.println("Key: " + key);
                System.out.print("Values: ");
                for (String s : valueList) {
                    System.out.print(s + " ");
                }
            }
        }

        scanner.close();
    }    
    catch (Exception e) {
        e.printStackTrace();
    }
4

3 に答える 3

2

またはMap.entrySet()に変更PropertyMap.entrySet()conceptMap.entrySet()

于 2012-08-02T17:32:51.417 に答える
1

Map インターフェイスによって宣言されたMap.entrySet()メソッドは、マップのコレクション ビューを返します ( を返しますSet)。これらの集合要素のそれぞれがMap.Entryオブジェクトです。マップ エントリへの参照を取得する唯一の方法は、このコレクション ビューのイテレータから取得することです。

Setマップに挿入したを返したい場合は、配置したコレクションで呼び出す必要があります。

PropertyMap.entrySet()conceptMap.entrySet()セットを返します。

Map.entrySet()インスタンス化された のいずれかでメソッドを呼び出していませんMaps

于 2012-08-02T21:09:17.517 に答える