Package com.pnfsoftware.jeb.util.collect
Class CollectionUtil
java.lang.Object
com.pnfsoftware.jeb.util.collect.CollectionUtil
Convenience methods for Java
collections
, in particular, lists
.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> Collection<T>
addNonNulls
(Collection<T> dst, Collection<? extends T> src) static <T> Collection<T>
addNonNulls
(Collection<T> dst, T... elts) static <T,
K extends Comparable<K>>
TbinarySearch
(List<T> list, K key, IExtractor<T, K> extractor) Perform a binary search in an ordered list.static <T,
K extends Comparable<K>>
intbinarySearchEx
(List<? extends T> list, K key, IExtractor<T, ? extends K> extractor, Comparator<K> cc) Perform a binary search in an ordered list.static <T> boolean
compare
(Collection<? extends T> c1, Collection<? extends T> c2, boolean sorted) static <T> boolean
compareByReference
(Collection<? extends T> c1, Collection<? extends T> c2, boolean sorted) static boolean
contains
(Collection<?> c, Object v) Safely check if an object is present within a collection.static boolean
containsNonNull
(Iterable<?> c) Determine if the given iterable contains one or more non-null elements.static boolean
containsNull
(Iterable<?> c) Determine if the given iterable contains one or more null elements.static <T> boolean
containsReference
(Collection<? extends T> c, T o) Determine if the collection contains the object reference (differs fromCollection.contains(Object)
by checking reference equality==
instead ofObject.equals(Object)
equality)static <T> int
count
(Collection<T> coll, T item) Count elements usingObject.equals(Object)
.static <T> Iterable<T>
doubleCollectionIterable
(Collection<T> coll1, Collection<T> coll2) Create a generator that will iterate over two collections, starting with the first one, then the second one.static <T> boolean
hasIntersection
(Collection<? extends T> c1, Collection<? extends T> c2) static <T> int
identityCount
(Collection<T> coll, T item) Count elements using==
.static <T> Set<T>
intersect
(Collection<? extends T> c1, Collection<? extends T> c2) Return the intersection of 2 collections (order of collection parameters does not matter).
-
Constructor Details
-
CollectionUtil
public CollectionUtil()
-
-
Method Details
-
containsNull
Determine if the given iterable contains one or more null elements.- Parameters:
c
-- Returns:
-
containsNonNull
Determine if the given iterable contains one or more non-null elements.- Parameters:
c
-- Returns:
-
containsReference
Determine if the collection contains the object reference (differs fromCollection.contains(Object)
by checking reference equality==
instead ofObject.equals(Object)
equality)- Parameters:
c
- collection to loop intoo
- element whose presence in this collection is to be tested- Returns:
- true if the collection contains the specified element
-
contains
Safely check if an object is present within a collection.- Parameters:
c
- collection, potentially nullv
- object, potentially null- Returns:
- true IFF the object is contained in the collection
-
intersect
Return the intersection of 2 collections (order of collection parameters does not matter).- Parameters:
c1
- first collectionc2
- second collection- Returns:
- a set of intersection
-
hasIntersection
-
binarySearch
public static <T,K extends Comparable<K>> T binarySearch(List<T> list, K key, IExtractor<T, K> extractor) Perform a binary search in an ordered list.- Parameters:
list
- a list of ordered itemskey
- the ordering key for the items.extractor
- key extractor- Returns:
- the element, null if not found
-
binarySearchEx
public static <T,K extends Comparable<K>> int binarySearchEx(List<? extends T> list, K key, IExtractor<T, ? extends K> extractor, Comparator<K> cc) Perform a binary search in an ordered list.- Parameters:
list
- a list of ordered itemskey
- the ordering key for the items.extractor
- key extractorcomp
- optional custom comparator for the keys- Returns:
- the zero+ index of the found element; else, the negative insertion index of the ghost element
-
compareByReference
public static <T> boolean compareByReference(Collection<? extends T> c1, Collection<? extends T> c2, boolean sorted) -
compare
public static <T> boolean compare(Collection<? extends T> c1, Collection<? extends T> c2, boolean sorted) -
count
Count elements usingObject.equals(Object)
.- Type Parameters:
T
-- Parameters:
coll
-item
-- Returns:
-
identityCount
Count elements using==
.- Type Parameters:
T
-- Parameters:
coll
-item
-- Returns:
-
addNonNulls
-
addNonNulls
-
doubleCollectionIterable
Create a generator that will iterate over two collections, starting with the first one, then the second one.This method is convenient to iterate over two collections without having to create an intermediate list holding the elements.
- Type Parameters:
T
-- Parameters:
coll1
- first collectioncoll2
- second collection- Returns:
- an iterable
-