java - 将 POJO 列表转换为 Map<String,Set<String>>

标签 java collections

我有一个 List<POJO>其中每个 POJO 都有一个字段“ID”,其值为“IP_ADDRESS”。我想将此列表聚合为 Map<ID,Set<IP_ADDRESS>> .

public Map<String, Set<String>> listToMapConverters(List<NormalizedSyslogMessage> listOfNormalizedSyslogMessages) {
        Map<String, Set<String>> partyToHostNameMapping = new HashMap<>();
        for (NormalizedSyslogMessage message : listOfNormalizedSyslogMessages) {
            Set<String> hostIpSet = new TreeSet<>();
            hostIpSet.add(message.getIpaddress().toString());
            partyToHostNameMapping.put(message.getPartyID().toString(),
                    hostIpSet);
        }
    }

我正在获取一组单独的 IP 地址作为每个 ID 的集合,我想在其中聚合特定 ID 的 IpAddresses。

由于项目限制,我不想使用任何第三方库。感谢您的帮助。

最佳答案

无需在 for 循环的每次迭代中创建新的 TreeSet,您需要检查映射 partyToHostnameMapping 中是否已存在适当的条目值并添加 IP_ADDRESS 到那个地址,如果它存在的话。

关于java - 将 POJO 列表转换为 Map<String,Set<String>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51835458/

相关文章:

arrays - Swift3 - 扩展类型 Collection 的问题

java - 我需要列出使用 java.lang.ApplicationShutdownHooks 注册的钩子(Hook)

java - compressionMinSize 不适用于 Tomcat 6

java - Cookie 域包含点?

sorting - 我们可以使用两个标准来排序吗

Java:难以从通配符泛型分配给泛型

java - 集合排序列表包含 2 个对象

java - 基于字符串属性向数组添加对象?

java - 将我的 C++ 代码转换为 Java : Translating multiple inheritance

Java集合: Does concrete class HashSet which uses Hash table implemented using LinkedList as its data structure?