Java HashMap 和 List 获取 AlarmCode 列表:根据设备类型和事件条件筛选
本文提供了一种使用 Java 代码从 HashMap 和 List 中获取 alarmCode 列表的方案。该方案根据设备类型和事件条件筛选不同的 alarmCode。
参数说明:
- map: 一个 HashMap<String, String>,用于存储 alarmCode 相关的配置信息。
- events: 一个 List
,用于存储事件信息。 - category: String 类型,表示设备类型。
获取 alarmCode 列表的步骤:
- 定义一个空的 List
来存储 alarmCode 列表,命名为 alarmCodes。 - 检查 events 参数是否包含 'X_00D0F8_COMMON_ALARM'。如果是,从 map 中取出对应的 'alarmCode' 字段,并将其添加到 alarmCodes 列表中。
- 检查设备类型是否为 'Gateway',并且 events 参数不包含 'X_CMCC_MONITOR'。如果是,将 events 参数中的所有数据添加到 alarmCodes 列表中。
- 检查设备类型是否为 'Gateway',并且 events 参数包含 'X_CMCC_MONITOR'。如果是,从 map 中取出 'GATEWAY_ALARM_NODE' 字段,并将其添加到 alarmCodes 列表中。
- 如果以上条件都不满足,则将 events 参数中的所有数据添加到 alarmCodes 列表中。
示例代码:
HashMap<String, String> map = new HashMap<String, String>();
List<String> events = new ArrayList<String>();
String category = "Gateway";
List<String> alarmCodes = new ArrayList<String>();
if (events.contains("X_00D0F8_COMMON_ALARM")) {
String alarmCode = map.get("alarmCode");
if (alarmCode != null) {
alarmCodes.add(alarmCode);
}
}
if (category.equals("Gateway")) {
if (!events.contains("X_CMCC_MONITOR")) {
alarmCodes.addAll(events);
} else {
String gatewayAlarmNode = map.get("GATEWAY_ALARM_NODE");
if (gatewayAlarmNode != null) {
alarmCodes.add(gatewayAlarmNode);
}
}
} else {
alarmCodes.addAll(events);
}
// 打印 alarmCodes 列表
System.out.println(alarmCodes);
注意:
请根据您的具体需求修改代码中的参数和字段名称。
原文地址: https://www.cveoy.top/t/topic/AWG 著作权归作者所有。请勿转载和采集!