Java tutorial
//package com.java2s; import java.util.Collection; import java.util.Comparator; import java.util.SortedSet; import java.util.TreeSet; public class Main { public static <T> TreeSet<T> createTreeSet() { return new TreeSet<T>(); } @SuppressWarnings("unchecked") public static <T, V extends T> TreeSet<T> createTreeSet(V... args) { return (TreeSet<T>) createTreeSet(null, args); } public static <T> TreeSet<T> createTreeSet(Iterable<? extends T> c) { return createTreeSet(null, c); } public static <T> TreeSet<T> createTreeSet(Comparator<? super T> comparator) { return new TreeSet<T>(comparator); } public static <T, V extends T> TreeSet<T> createTreeSet(Comparator<? super T> comparator, V... args) { TreeSet<T> set = new TreeSet<T>(comparator); if (args != null) { for (V v : args) { set.add(v); } } return set; } public static <T> TreeSet<T> createTreeSet(Comparator<? super T> comparator, Iterable<? extends T> c) { TreeSet<T> set = new TreeSet<T>(comparator); iterableToCollection(c, set); return set; } public static <E> TreeSet<E> createTreeSet(SortedSet<E> set) { if (set == null) { return new TreeSet<E>(); } return new TreeSet<E>(set); } private static <E> void iterableToCollection(Iterable<? extends E> iter, Collection<E> list) { if (iter == null) { return; } for (E element : iter) { list.add(element); } } }