rulesList ArrayList
[0] RuleType
ruleDescr “test1”
ruleID “Rule1”
[1] Ruletype
ruleDescr “test2”
ruleID “Type2”
[2] RuleType
ruleDescr "test3"
ruleID "Type3"
[3] RuleType
ruleDescr "test4"
ruleID "Rule4"
ruleList only contains test1 and test4 after excluding ruleID's Type2 and Type3.
private List<String> extractAlertsInfoList(RulesListType thisDetailRulesList) {
List<String> alertsInfoList = new ArrayList<>();
if (thisDetailRulesList != null && CollectionUtils.isNotEmpty(thisDetailRulesList.getRule())) {
List<RuleType> rulesList = thisDetailRulesList.getRule();
for (RuleType thisRule : rulesList) {
String ruleId = thisRule.getRuleID().toString().trim();
String ruleIdsToExclude = "Type1,Type2,Type3,Type4";
if (isValidRuleDescription(thisRule.getRuleDesc()) ) {
alertsInfoList.add(thisRule.getRuleDesc());
}
}
}
return alertsInfoList;
}
private boolean isValidRuleDescription(String ruleDesc) {
return ruleDesc != null && !ruleDesc.isEmpty();
}
谢谢
Stream<T> filter(Predicate<? super T> predicate)
List<String> toExclude = Arrays.asList("Type1,Type2,Type3,Type4".split(","));
List<RuleType> filteredList = thisDetailRulesList.getRule()
.stream()
.filter(rr -> !toExclude.contains(rr.getID()))
.toList();