1. 程式人生 > >TreeSet插入時會排序

TreeSet插入時會排序

方法:不同步的

插入是按字典序排序的


  
  1. import java.util.Iterator;
  2. import java.util.TreeSet;
  3. class Main
  4. {
  5. public static void main(String args[])
  6. {
  7. TreeSet ts= new TreeSet();
  8. ts.add( "abcd"
    );
  9. ts.add( "agg");
  10. ts.add( "ffas");
  11. Iterator it=ts.iterator();
  12. while
    (it.hasNext())
  13. {
  14. System.out.println(it.next());
  15. }
  16. }
  17. }

執行結果:

如果插入的是自定義物件 需要讓類實現 Comparable 介面並且必須要重寫compareTo

舉例如下:


  
  1. import java.util.Iterator;
  2. import java.util.TreeSet;
  3. class Person implements Comparable
  4. {
  5. String name;
  6. int age;
  7. Person(String name, int age)
  8. {
  9. this.name=name;
  10. this.age=age;
  11. }
  12. @Override
  13. public int compareTo(Object o) {
  14. Person p=(Person)o;
  15. //先對姓名字典序比較 如果相同 比較年齡
  16. if( this.name.compareTo(p.name)!= 0) {
  17. return this.name.compareTo(p.name);
  18. }
  19. else
  20. {
  21. if( this.age>p.age) return 1;
  22. else if( this.age<p.age) return - 1;
  23. }
  24. return 0;
  25. }
  26. }
  27. class Main
  28. {
  29. public static void main(String args[])
  30. {
  31. TreeSet ts= new TreeSet();
  32. ts.add( new Person( "agg", 21));
  33. ts.add( new Person( "abcd", 12));
  34. ts.add( new Person( "ffas", 8));
  35. ts.add( new Person( "agg", 12));
  36. Iterator it=ts.iterator();
  37. while(it.hasNext())
  38. {
  39. Person p=(Person)it.next();
  40. System.out.println(p.name+ ":"+p.age);
  41. }
  42. }
  43. }

輸出結果: