Null safe creation of a HashSet out of a given collection without null elements. - Java java.util

Java examples for java.util:HashSet

Description

Null safe creation of a HashSet out of a given collection without null elements.

Demo Code

/*******************************************************************************
 * Copyright (c) 2010 BSI Business Systems Integration AG.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors://from w  w w  . ja  v a 2s .co  m
 *     BSI Business Systems Integration AG - initial API and implementation
 ******************************************************************************/
//package com.book2s;

import java.util.Collection;

import java.util.HashSet;

public class Main {
    public static void main(String[] argv) {
        Collection c = java.util.Arrays.asList("asdf", "book2s.com");
        System.out.println(hashSetWithoutNullElements(c));
    }

    /**
     * Null safe creation of a {@link HashSet} out of a given collection without <code>null</code> elements. The returned
     * {@link HashSet} is modifiable and never null.
     *
     * @param c
     * @return an {@link HashSet} containing the given collection's elements without <code>null</code> elements. Never
     *         null.
     */
    public static <T> HashSet<T> hashSetWithoutNullElements(
            Collection<? extends T> c) {
        HashSet<T> set = hashSet(c);
        set.remove(null);
        return set;
    }

    /**
     * Null safe creation of a {@link HashSet} out of a given collection. The returned {@link HashSet} is modifiable and
     * never null.
     *
     * @param c
     * @return an {@link HashSet} containing the given collection's elements. Never null.
     */
    public static <T> HashSet<T> hashSet(Collection<? extends T> c) {
        if (c != null) {
            return new HashSet<T>(c);
        }
        return new HashSet<T>(0);
    }

    /**
     * Set factory
     */
    public static <T> HashSet<T> hashSet(T... values) {
        if (values != null) {
            HashSet<T> set = new HashSet<T>(values.length);
            for (T v : values) {
                set.add(v);
            }
            return set;
        }
        return new HashSet<T>(0);
    }

    public static <T> HashSet<T> hashSet(T value) {
        HashSet<T> set = new HashSet<T>();
        if (value != null) {
            set.add(value);
        }
        return set;
    }
}

Related Tutorials