import java.util.*;

/*对字符串进行长度排序,使用treeset
 思路:
 字符串都是对象,可以先存储到集合中
 还要对字符串进行排序,所以选择带排序的集合treeset
 
 字符串本身具备自然排序,是按照字典顺序
 但是和所需要求不符,这时就只能使用比较器进行排序*/
public class TreeSetTest {

 /**

  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  TreeSet ts=new TreeSet(new CompareByLength());
  ts.add("abc");
  ts.add("z");
  ts.add("nba");
  ts.add("ko");
  ts.add("cccccccc");
  ts.add("aa");
  
  Iterator it=ts.iterator();
  while(it.hasNext())
  {
   System.out.println(it.next());
  }

 }

}

class CompareByLength implements Comparator
{
 public int compare(Object o1,Object o2)
 {
  String str1=(String)o1;
  String str2=(String)o2;
  
  int num=str1.length()-str2.length();
  //int num=new Integer(str1.length()).compareTo(new Integer(str2.length()));
  return num==0?str1.compareTo(str2):num;
  
 }
}

 

run as:

z

aa
ko
abc
nba
cccccccc