diff --git a/src/main/java/com/reandroid/utils/ObjectsStore.java b/src/main/java/com/reandroid/utils/ObjectsStore.java
index c2d27dcda..a11694591 100644
--- a/src/main/java/com/reandroid/utils/ObjectsStore.java
+++ b/src/main/java/com/reandroid/utils/ObjectsStore.java
@@ -15,21 +15,19 @@
*/
package com.reandroid.utils;
-import com.reandroid.utils.collection.ArrayCollection;
import com.reandroid.utils.collection.EmptyIterator;
import com.reandroid.utils.collection.FilterIterator;
+import com.reandroid.utils.collection.InstanceIterator;
import com.reandroid.utils.collection.SingleIterator;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Iterator;
+import java.util.*;
import java.util.function.Predicate;
/**
* A utility class to hold few non-null objects, the main purpose is to minimize new List class creation.
* If no entries, the container will be null.
* If one entry, the container will become entry itself.
- * If more than one entry, List class will be created and becomes the container.
+ * If more than one entry, a {@link LinkedHashSet} will be created and becomes the container.
* */
public class ObjectsStore {
@@ -37,8 +35,8 @@ public static boolean isEmpty(Object container) {
if (container == null) {
return true;
}
- if (container.getClass() == ObjectsList.class) {
- return ((ObjectsList) container).isEmpty();
+ if (container instanceof LinkedHashSet) {
+ return ((LinkedHashSet>) container).isEmpty();
}
return false;
}
@@ -46,8 +44,8 @@ public static int size(Object container) {
if (container == null) {
return 0;
}
- if (container.getClass() == ObjectsList.class) {
- return ((ObjectsList) container).size();
+ if (container instanceof LinkedHashSet) {
+ return ((LinkedHashSet>) container).size();
}
return 1;
}
@@ -55,8 +53,8 @@ public static boolean contains(Object container, Object item) {
if (container == null) {
return false;
}
- if (container.getClass() == ObjectsList.class) {
- return ((ObjectsList) container).contains(item);
+ if (container instanceof LinkedHashSet) {
+ return ((LinkedHashSet>) container).contains(item);
}
return container.equals(item);
}
@@ -64,22 +62,29 @@ public static boolean containsIf(Object container, Predicate predicate) {
return iteratorIf(container, predicate).hasNext();
}
public static Object clear(Object container) {
- if (container != null && container.getClass() == ObjectsList.class) {
- ((ObjectsList) container).clear();
+ if (container instanceof LinkedHashSet) {
+ ((LinkedHashSet>) container).clear();
}
return null;
}
public static void sort(Object container, Comparator> comparator) throws ClassCastException {
- if (container != null && container.getClass() == ObjectsList.class) {
- ((ObjectsList) container).sort(ObjectsUtil.cast(comparator));
+ if (container instanceof LinkedHashSet) {
+ LinkedHashSet