データベースから取得したすべてのグループを含む HashSet があります。2 つの特定のグループを削除して、この結果をフィルタリングするように依頼されました。些細なことのように思えますが、フィルターで除外したい特定のグループを保存するための確実な解決策が思いつかないようです。
私の考えは、除外する必要がある 2 つのグループへの参照を含む配列を作成することです。次に、配列内にあるものを使用して検索クエリを除外できます。私の懸念は、将来、より多くのグループを除外するように求められる可能性があり、配列が良い考えではない可能性があることです。
//Creates the array containing groups to filter out
String[] hiddenGroups = {"group1","group2"};
//retrieves all groups
Set<String>allGroups = new HashSet<String>();
allGroups.addAll(authorityService.getAllAuthorities(AuthorityType.GROUP);
List<String>results = new ArrayList<String>();
//filters out specified groups
for (String group : allGroups) {
boolean isHidden = false;
for (String hiddenGroup : hiddenGroups) {
if (hiddenGroup.equalsIgnorecase(group)) {
isHidden = true;
}
}
if (!isHidden){
results.add(group);
}
}