如何正确使用hashSet? (从c ++移到java)

时间:2018-10-04 12:50:04

标签: java android hashset

我正在(在c ++之后)使用Java,特别是在进行Android应用程序开发(Android Studio)时,但是在hashSet使用方面遇到了一些麻烦。 这就是问题所在:我找不到在任何容器中存储从“ keySet()”方法获得的地图键的方法;我试图将键存储在字符串向量或列表中,但发生错误。我该如何解决?

这是一段代码:

 private void fillMap(Map<String, String> map, String[] strings){

    String str;

    map.put("Question1", "answer1");
    map.put("Question2", "answer2");
    map.put("Question3", "answer3");

    Set<String> keys = map.keySet();


}

如您所见,我创建了一个地图,其键是问题,其值是答案。然后,我创建了一个Set,用于放置所有键;问题是我会尝试将集合的内容存储在有序容器中,但是我尝试的所有操作都会给我带来错误。

1 个答案:

答案 0 :(得分:0)

假设您有一个Map<String, Integer>,那么它的keySet()是一个Set<String>的接口,它是从更一般的Collection<String>派生的。您可以将此收藏集添加到所有内容中。

Set<String> keys = map.keySet();
List<String> list = new ArrayList<>(keys); // 1
list.sort();

Collections.addAll(list, keys); // or 2
Collections.sort(list); 

SortedSet<String> set = new TreeSet<>(keys);

对C ++程序员的警告:Vector是一个非常老的低效率类;而是使用ArrayList,因此使用变量,参数,结果类型为List。