运行公共 HashMap 方法时遇到问题

问题描述 投票:0回答:1

该方法的目的和目标是从反向打印hash map。但是我在第 7 行 (revrse();) 遇到了一个问题,在那里我收到错误消息“lab8_Part3 类型的方法 reverse(Map) 不适用于参数 ()”。日食建议的所有解决方案都会导致错误,我很难过。感谢帮助

import java.util.HashMap;
import java.util.Map;

public class test {

    public static void main(String[] args) {
        reverse();
    }

    public Map<String, Integer> reverse(Map<Integer, String> map) {
        HashMap<String, Integer> reversed = new HashMap<String, Integer>();
        reversed.put("Eightenn", 18);
        reversed.put("Fifty", 50);
        reversed.put("neThreeTwo", 132);
        reversed.put("Ocho", 8);
        reversed.put("Forty-one", 41);
        System.out.println("Reversered map " + reversed);
        for(int key : map.keySet()) {
            String value = map.get(key);

            if(!reversed.containsKey(value)) {
                reversed.put(value, key);
            }
        }
        return reversed;
    }
}

该方法的目的和目标是从反向打印hash map。

java hashmap
1个回答
2
投票

reverse()
方法需要
Map<Integer, String>
参数并返回一个
Map<Integer, String>
对象,但是您调用它时没有任何参数也没有分配对象。

我修改了你的代码,这应该可以。

import java.util.HashMap;
import java.util.Map;

public class test {

    public static void main(String[] args) {
        Map<Integer, String> original = new HashMap<Integer, String>();
        original.put(18, "Eightenn");
        original.put(50, "Fifty");
        original.put(132, "neThreeTwo");

        Map<String, Integer> reversed = reverse(original);
        System.out.println("Reversed map: " + reversed);
    }

    public static Map<String, Integer> reverse(Map<Integer, String> map) {
        Map<String, Integer> reversed = new HashMap<String, Integer>();
        for(int key : map.keySet()) {
            String value = map.get(key);
            reversed.put(value, key);
        }
        return reversed;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.