1. Treeset默认是按照字母顺序来排列的
public static void DefaultTreeSet() { TreeSet ts = new TreeSet(); ts.add("zbc"); ts.add("zaa"); ts.add("aa"); ts.add("nba"); ts.add("cba"); Iterator it = ts.iterator(); while (it.hasNext()){ System.out.print(it.next()+" ");//aa cba nba zaa zbc } }
2.如果年龄一样大按照姓名的自然顺序排列, 否则按照年龄来排序
public static void main(String[] args) throws Exception { TreeSet<User> set = new TreeSet<>(new Comparator<User>() { @Override public int compare(User o1, User o2) { return (o1.getAge()+"").compareTo(o2.getAge()+"")==0 ? o1.getName().compareTo(o2.getName()):(o1.getAge()+"").compareTo(o2.getAge()+"") ; } }); set.add(new User("zhangsan",28)); set.add(new User("lisi",26)); set.add(new User("wangwu",26)); set.add(new User("chenliu",19)); set.add(new User("chenl",20)); set.add(new User("chen",22)); set.add(new User("xhaoqi",28)); Iterator<User> it = set.iterator(); while(it.hasNext()){ User user = it.next(); //chenliu:19 chenl:20 chen:22 lisi:26 wangwu:26 xhaoqi:28 zhangsan:28 System.out.print(user.getName()+":"+user.getAge()+" "); }