有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从哈希映射返回密钥列表?

我目前正在尝试制作一个将动词变位为西班牙语的程序。我创建了一个哈希表,其中包含一个键和一个宾语动词的实例化。键是一个具有动词不定式形式的字符串(例如,“hablar”)。这是我到目前为止对哈希映射的代码:

public class VerbHashMap {

    HashMap<String, Verb> verbHashMap;

    public VerbHashMap(){
        verbHashMap = new HashMap();
    }   
}

HashMap中每个动词的键都基于动词的不定式形式。例如,字符串“hablar”是西班牙语动词的键。动词类有一个名为getInfinitive()的方法,该方法返回一个包含动词不定式形式的字符串

public boolean addVerb(Verb verb){
    if(verbHashMap.containsValue(verb.getInfinitive()){
        return false;
    }
    else{
        verbHashMap.put(verb.getInfinitive(), verb);
        return true;
    }
}

问题是,创建一个按字母顺序返回哈希映射中所有动词列表的方法最有效的方法是什么?我应该让该方法返回一个ArrayList,其中包含哈希映射中所有对象的键吗?还是有更有效的方法


共 (3) 个答案

  1. # 1 楼答案

    使用keySet()方法返回包含Map的所有键的集合

    如果你想让你的地图保持有序,你可以使用^{}

  2. # 2 楼答案

    List<String> yourList = new ArrayList<>(map.keySet());
    

    这很好

  3. # 3 楼答案

    从Java 8开始:

    List<String> myList = map.keySet().stream().collect(Collectors.toList());