1 package comcollection.test; 2 3 import java.util.Comparator; 4 import java.util.Iterator; 5 import java.util.TreeSet; 6 7 /** 8 * @author MJC 9 *2018年2月8日 10 * 下午9:28:56 11 */ 12 public class CollectionTest2 { 13 14 public static void main(String[] args) { 15 /** 16 * 字符串元素,按照长度进行排序。 17 */ 18 TreeSet<String> tree = new TreeSet<String>(new ComparetorByStringLeng<String>()); 19 tree.add("sad"); 20 tree.add("aads"); 21 tree.add("dadss"); 22 tree.add("sadsss"); 23 for (Iterator<String> iterator = tree.iterator(); iterator.hasNext();) { 24 System.out.println(iterator.next()); 25 } 26 27 } 28 } 29 class ComparetorByStringLeng<T> implements Comparator<T>{ 30 31 @Override 32 public int compare(T o1, T o2) { 33 String s1 = (String) o1; 34 String s2 = (String) o2; 35 int temp = s1.length() - s2.length(); 36 return temp == 0 ? s1.compareTo(s2) : temp;//s1.compareTo(s2)避免重复字符串元素时只存其中一个,因为当temp等于0时,默认以为比较的两个对象是一样的 37 } 38 39 }