static final List<String> allowedType = asList(type1,type2);Set<String> set1 = serviceClass.getType() .stream() .filter(type -> allowedType.contains(type)) .collect(toSet());該要求由兩部分組成,第1部分。如果從 serviceClass 接收的類型具有 allowedType 中提到的任何服務類型,請將其添加到 set1。第2部分。完成上述操作后,我需要檢查set1是否包含這兩種類型,如果是,則需要刪除一種類型。Part1很簡單,截至目前,我已經使用part2實現了part2if (set1.contains("type1" && set1.contains("typep2") { set1.remove("type");}有沒有第1部分和第2部分可以杵化成一個單一的操作?謝謝
1 回答

呼如林
TA貢獻1798條經驗 獲得超3個贊
如果總是有兩種類型,并且您始終可以最多保留其中一種,則可以使用:limit
Set<String> set1 = serviceClass.getType() .stream() .filter(type -> allowedType.contains(type)) .limit(1) .collect(toSet());
limit(1)
如果至少有一個元素通過過濾器,將返回 1 個元素的流,否則為空流。在我看來,這將為您提供您所要求的(未經測試)。
添加回答
舉報
0/150
提交
取消