Skip to content

Commit 3d2d32a

Browse files
Replace ArrayList to HashSet for excludedHoldouts map
1 parent 596d9d7 commit 3d2d32a

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

core-api/src/main/java/com/optimizely/ab/config/HoldoutConfig.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@
2121
import java.util.ArrayList;
2222
import java.util.Collections;
2323
import java.util.HashMap;
24+
import java.util.HashSet;
2425
import java.util.List;
2526
import java.util.Map;
27+
import java.util.Set;
2628
import java.util.concurrent.ConcurrentHashMap;
2729

2830
import javax.annotation.Nonnull;
@@ -37,7 +39,7 @@ public class HoldoutConfig {
3739
private Map<String, Holdout> holdoutIdMap;
3840
private Map<String, List<Holdout>> flagHoldoutsMap;
3941
private Map<String, List<Holdout>> includedHoldouts;
40-
private Map<String, List<Holdout>> excludedHoldouts;
42+
private Map<String, Set<Holdout>> excludedHoldouts;
4143

4244
/**
4345
* Initializes a new HoldoutConfig with an empty list of holdouts.
@@ -93,7 +95,7 @@ private void updateHoldoutMapping() {
9395
global.add(holdout);
9496

9597
for (String flagId : holdout.getExcludedFlags()) {
96-
excludedHoldouts.computeIfAbsent(flagId, k -> new ArrayList<>()).add(holdout);
98+
excludedHoldouts.computeIfAbsent(flagId, k -> new HashSet<>()).add(holdout);
9799
}
98100
}
99101
}
@@ -119,7 +121,7 @@ public List<Holdout> getHoldoutForFlag(@Nonnull String id) {
119121

120122
// Prioritize global holdouts first
121123
List<Holdout> activeHoldouts = new ArrayList<>();
122-
List<Holdout> excluded = excludedHoldouts.getOrDefault(id, Collections.emptyList());
124+
Set<Holdout> excluded = excludedHoldouts.getOrDefault(id, Collections.emptySet());
123125

124126
if (!excluded.isEmpty()) {
125127
for (Holdout holdout : global) {

0 commit comments

Comments
 (0)