Given two collections of elements of type , return a collection containing the items from both lists - Java java.util

Java examples for java.util:Collection Contain

Description

Given two collections of elements of type , return a collection containing the items from both lists

Demo Code


//package com.java2s;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;

import java.util.HashSet;

import java.util.Map;
import java.util.Set;

public class Main {
    public static void main(String[] argv) {
        Collection collection1 = java.util.Arrays.asList("asdf",
                "java2s.com");
        Collection collection2 = java.util.Arrays.asList("asdf",
                "java2s.com");
        System.out.println(union(collection1, collection2));
    }/*w  w w.ja  va  2 s  .  co m*/

    /**
     * Given two collections of elements of type <T>, return a collection containing the items from both lists
     * 
     * @param <T>
     *            Type
     * @param collection1
     *            Collection #1
     * @param collection2
     *            Collection #2
     * @return Collection with items from both lists
     */
    public static <T> Collection<T> union(
            Collection<? extends T> collection1,
            Collection<? extends T> collection2) {
        if (isEmpty(collection1)) {
            if (isEmpty(collection2)) {
                // if both are empty, return empty list
                return Collections.emptyList();
            }
            // if just 1 is empty, return 2
            return new ArrayList<T>(collection2);
        }
        // at this point when know 1 is not empty
        if (isEmpty(collection2)) {
            // so if 2 is, return 1.
            return new ArrayList<T>(collection1);
        }

        // we know both 1 and 2 aren't empty
        Set<T> union = new HashSet<T>(collection1.size()
                + collection2.size());

        union.addAll(collection1);
        union.addAll(collection2);

        return new ArrayList<T>(union);
    }

    /**
     * This is a convenience method that returns true if the specified collection is null or empty
     * 
     * @param <T>
     *            Any type of object
     * @param collection
     * @return
     */
    public static <T> boolean isEmpty(Collection<T> collection) {
        return collection == null || collection.isEmpty();
    }

    /**
     * This is a convenience method that returns true if the specified map is null or empty
     * 
     * @param <T>
     *            any type of key
     * @param <U>
     *            any type of value
     * @param map
     * @return
     */
    public static <T, U> boolean isEmpty(Map<T, U> map) {
        return map == null || map.isEmpty();
    }

    public static int size(Collection<? extends Object> collection) {
        if (collection == null) {
            return 0;
        }
        return collection.size();
    }
}

Related Tutorials