diff options
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/com/android/internal/util/CollectionUtils.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/core/java/com/android/internal/util/CollectionUtils.java b/core/java/com/android/internal/util/CollectionUtils.java index 287f68cf5a55..183945ca1382 100644 --- a/core/java/com/android/internal/util/CollectionUtils.java +++ b/core/java/com/android/internal/util/CollectionUtils.java @@ -127,4 +127,29 @@ public class CollectionUtils { } return null; } + + /** + * Similar to {@link List#add}, but with support for list values of {@code null} and + * {@link Collections#emptyList} + */ + public static @NonNull <T> List<T> add(@Nullable List<T> cur, T val) { + if (cur == null || cur == Collections.emptyList()) { + cur = new ArrayList<>(); + } + cur.add(val); + return cur; + } + + /** + * Similar to {@link List#remove}, but with support for list values of {@code null} and + * {@link Collections#emptyList} + */ + public static @NonNull <T> List<T> remove(@Nullable List<T> cur, T val) { + if (cur == null || cur == Collections.emptyList()) { + return Collections.emptyList(); + } + cur.remove(val); + return cur; + } + } |
