Class CollectionsX


  • public class CollectionsX
    extends java.lang.Object
    The collection related utilities.
    Author:
    tomyeh
    See Also:
    Collections
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.util.Enumeration EMPTY_ENUMERATION
      Empty enumeration.
      static java.util.Iterator EMPTY_ITERATOR
      Empty iterator.
    • Constructor Summary

      Constructors 
      Constructor Description
      CollectionsX()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static <T> int addAll​(java.util.Collection<T> col, java.lang.Object[] ary)
      Adds all elements of an array to a collection.
      static <T> int addAll​(java.util.Collection<T> col, java.util.Enumeration<? extends T> enm)
      Adds all elements returned by the enumerator to a collection.
      static <T> int addAll​(java.util.Collection<T> col, java.util.Iterator<? extends T> iter)
      Adds all elements returned by the iterator to a collection.
      static <E> java.util.Iterator<E> comodifiableIterator​(java.util.Collection<E> col)
      Returns an iterator that allows the caller to modify the collection directly (in addition to Iterator.remove()).
      static <F,​T>
      java.util.Iterator<T>
      comodifiableIterator​(java.util.Collection<F> col, Converter<F,​T> converter)
      Returns an iterator that allows the caller to modify the collection directly (in addition to Iterator.remove()).
      static <T> java.util.Enumeration<T> emptyEnumeration()
      Returns a generic empty enumeration.
      static <T> java.lang.Iterable<T> emptyIterable()
      Returns an empty iterable object.
      static <T> java.util.Iterator<T> emptyIterator()
      Returns a generic empty iterator.
      static boolean isIntersected​(java.util.Set<?> a, java.util.Set<?> b)
      Tests whether two sets has any intersection.
      static java.util.Iterator iterator​(java.lang.Object obj)
      Based on the given collection type of Object, return an iterator.
      static java.util.Collection<java.lang.String> parse​(java.util.Collection<java.lang.String> c, java.lang.String src, char separator)
      Parses a string into a list.
      static java.util.Collection<java.lang.String> parse​(java.util.Collection<java.lang.String> c, java.lang.String src, char separator, boolean escBackslash)
      Parses a string into a list.
      static java.util.Collection<java.lang.String> parse​(java.util.Collection<java.lang.String> c, java.lang.String src, char separator, boolean escBackslash, boolean parenthesis)
      Parses a string into a list.
      static <T> T[] toArray​(java.util.Collection<? extends T> col, T[] dst, int from, int to)
      Returns the specified range of the given collection; the runtime type of the returned array is that of the specified array.
      static java.lang.Object[] toArray​(java.util.Collection col, int from, int to)
      Returns the specified range of the specified collection into a new array.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • EMPTY_ITERATOR

        public static final java.util.Iterator EMPTY_ITERATOR
        Empty iterator.
      • EMPTY_ENUMERATION

        public static final java.util.Enumeration EMPTY_ENUMERATION
        Empty enumeration.
    • Constructor Detail

      • CollectionsX

        public CollectionsX()
    • Method Detail

      • emptyIterator

        public static final <T> java.util.Iterator<T> emptyIterator()
        Returns a generic empty iterator.
        Since:
        6.0.0
      • emptyEnumeration

        public static final <T> java.util.Enumeration<T> emptyEnumeration()
        Returns a generic empty enumeration.
        Since:
        6.0.0
      • emptyIterable

        public static final <T> java.lang.Iterable<T> emptyIterable()
        Returns an empty iterable object.
        Since:
        6.0.0
      • toArray

        public static final java.lang.Object[] toArray​(java.util.Collection col,
                                                       int from,
                                                       int to)
        Returns the specified range of the specified collection into a new array. The initial index of the range (from) must lie between zero and col.size, inclusive. The final index of the range (to), which must be greater than or equal to from.

        The returned array will be "safe" in that no references to it are maintained by this list. (In other words, this method must allocate a new array). The caller is thus free to modify the returned array.

        This method acts as bridge between array-based and collection-based APIs.

        Parameters:
        col - the collection to be copied.
        from - the initial index of the range to be copied, inclusive.
        to - the final index of the range to be copied, exclusive.
        Since:
        3.0.6
      • toArray

        public static final <T> T[] toArray​(java.util.Collection<? extends T> col,
                                            T[] dst,
                                            int from,
                                            int to)
        Returns the specified range of the given collection; the runtime type of the returned array is that of the specified array.
        Parameters:
        col - the collection to be copied.
        dst - the array into which the elements of this list are to be stored, if it is big enough (less than to - from; otherwise, a new array of the same runtime type is allocated for this purpose. Note: dst[0] will be col[from].
        from - the initial index of the range to be copied, inclusive.
        to - the final index of the range to be copied, exclusive.
        Since:
        6.0.0
      • addAll

        public static final <T> int addAll​(java.util.Collection<T> col,
                                           java.util.Iterator<? extends T> iter)
        Adds all elements returned by the iterator to a collection.
        Parameters:
        iter - the iterator; null is OK
        Returns:
        the number element being added
      • addAll

        public static final <T> int addAll​(java.util.Collection<T> col,
                                           java.util.Enumeration<? extends T> enm)
        Adds all elements returned by the enumerator to a collection.
        Parameters:
        enm - the enumeration; null is OK
        Returns:
        the number element being added
      • addAll

        public static final <T> int addAll​(java.util.Collection<T> col,
                                           java.lang.Object[] ary)
        Adds all elements of an array to a collection.
        Parameters:
        ary - the array; null is OK
        Returns:
        the number element being added
      • isIntersected

        public static final boolean isIntersected​(java.util.Set<?> a,
                                                  java.util.Set<?> b)
        Tests whether two sets has any intersection.
      • parse

        public static final java.util.Collection<java.lang.String> parse​(java.util.Collection<java.lang.String> c,
                                                                         java.lang.String src,
                                                                         char separator,
                                                                         boolean escBackslash,
                                                                         boolean parenthesis)
        Parses a string into a list. To quote a string, both '\'' and '"' are OK. Whitespaces are trimmed between quotation and separators.

        Unlike Java, quotation could spread over multiple lines.

        Example,
        a b , ' c d',"'f'", '1' "2", 3
        generate a list of "a b", "c d", "'f'", "1", "2" and "3". Note: the separator between "1" and "2" is optional.

        Note: Like Java, if the string is ending with a separator, it will be ignored.

        Example,
        a, , b,
        generate a list of "a", "", "b".

        Parameters:
        c - the collection to hold the parsed results; a linked list is created if c is null.
        src - the string to parse
        separator - the separator, e.g., ',', '\n' or ' '. Note: if separator is ' ', it denotes any white space.
        escBackslash - whether to treat '\\' specially (as escape char)
        parenthesis - whether to parse parenthesis in the value, {}, () and []. If true, the separator is ignored inside the parenthesis. Specify true if the value might contain EL expressions.
        Returns:
        the c collection if not null; or a linked list if c is null (so you can cast it to List)
        Throws:
        IllegalSyntaxException - if syntax errors
        Since:
        3.0.6
        See Also:
        Maps.parse(java.util.Map<? super java.lang.String, ? super java.lang.String>, java.lang.String, char, char)
      • iterator

        public static final java.util.Iterator iterator​(java.lang.Object obj)
        Based on the given collection type of Object, return an iterator. The Collection type of object can be Collection, Map (return the entry), or Array.
      • comodifiableIterator

        public static <E> java.util.Iterator<E> comodifiableIterator​(java.util.Collection<E> col)
        Returns an iterator that allows the caller to modify the collection directly (in addition to Iterator.remove()). In other words, the iterator will handle java.util.ConcurrentModificationException and return the items one-by-one even if collection's add, remove or other method was called (which is not allowed by a regular iterator).

        Limitation:

        • It is still not safe to modify the collection between hasNext() and next().Modify it after next(), if necessary.
        • If the collection have multiple items referencing to the same object, and if we remove the item that has been iterated, the other item might be ignored. For example, if a collection has A, B, C, B, then the following code only iterates A, B, C
        
                for (Iterator it = org.zkoss.util.CollectionsX.comodifiableIterator(list); it.hasNext();) {
                        it.next();
                        l.remove(0);
                }
        Since:
        5.0.6
      • comodifiableIterator

        public static <F,​T> java.util.Iterator<T> comodifiableIterator​(java.util.Collection<F> col,
                                                                             Converter<F,​T> converter)
        Returns an iterator that allows the caller to modify the collection directly (in addition to Iterator.remove()).
        Parameters:
        converter - the filter used to convert the value of each element found in the given collection to the return iterator. Ignored if null (and then F must be the same as T or extends from T).
        Since:
        6.0.0