如何将通用 Set 添加到 Map (Map<String, Set<String>> map = new TreeMap<>())?

时间:2021-01-25 07:05:00

标签: java string dictionary generics set

我想在帮助下制作电话簿feature label a 1 b 0 c 0 d 1

示例:

Map<String, Set<String>> map = new TreeMap<>()

其中name是key(String),电话号码是Set值,如何为每个名字指定电话号码,即每个名字必须有自己的Set Numbers

2 个答案:

答案 0 :(得分:1)

为什么不简单地尝试一下

如果您使用 Java 9 及以上,请使用

Map<String, Set<String>> map = new TreeMap<>();
map.put("Anna", Set.of(8999));
map.put("Ira", Set.of(8777, 8666));
map.put("Artur", Set.of(5444, 6555));

如果您使用的是 Java 8,请尝试

Map<String, Set<Integer>> map = new TreeMap<>();
map.put("Anna", Stream.of(8999).collect(Collectors.toSet()));
map.put("Ira", Stream.of(8777, 8666).collect(Collectors.toSet()));
map.put("Artur", Stream.of(5444, 6555).collect(Collectors.toSet()));

如果您使用的是旧版本的 Java,请尝试

Map<String, Set<String>> map = new TreeMap<>();
map.put("Anna", new TreeSet(Arrays.asList(8999)));
map.put("Ira", new TreeSet(Arrays.asList(8777, 8666)));
map.put("Artur", new TreeSet(Arrays.asList(5444, 6555)));

答案 1 :(得分:1)

如果您使用 Java 8,请尝试以下操作:

    Map<String, Set<String>> map = new TreeMap<>();
    map.put("Anna", new HashSet(Arrays.asList(8999)));
    map.put("Ira", new HashSet(Arrays.asList(8777, 8666)));
    map.put("Artur",new HashSet(Arrays.asList(5444, 6555)));

如果您使用 Java 9+,则使用 Set.of。但请注意,使用 of 方法创建的这个集合是不可修改的。

示例:

Set.of(8999)
相关问题