Java TreeSet的使用

一、TreeSe自帶排序的set,沒有重複元素。數組

二、TreeSet 若是構造函數中沒有使用比較器,那在裝載的對象類中要實現Comparable 接口。ide

三、TreeSet 使用初始化比較器的方式。函數

試例代碼:this

public class Demo {對象

 public static void main(String[] args) {   排序

 //一、TreeSe自帶排序的set,沒有重複元素   接口

  TreeSet<String> setStr=new TreeSet<String>();   it

  setStr.add("E");       class

  setStr.add("D");   foreach

  setStr.add("C");   

  setStr.add("A");   

  setStr.add("B");   

  setStr.add("B");

  System.out.println(setStr.toString());

  System.out.println("-------------遍歷方式:一、使用迭代器遍歷------------");   

  Iterator<String> ite = setStr.iterator();   

  while(ite.hasNext()) {    

      System.out.println(ite.next());  

   }

  System.out.println("-------------遍歷方式:二、使用數組遍歷------------");

  Object[] objs = setStr.toArray();

  for(int i=0;i<objs.length;i++) {

   System.out.println(objs[i]);

  }  

  //二、TreeSet 若是構造函數中沒有使用比較器,那在裝載的對象類中要實現Comparable 接口     

  System.out.println("-------------TreeSet 若是構造函數中沒有使用比較器,那在裝載的對象類中要實現Comparable 接口------------");

  TreeSet<person> setPerson=new TreeSet<person>();

  setPerson.add(new person("張三",20));

  setPerson.add(new person("李四",19));

  setPerson.add(new person("王五",32));

  System.out.println(setPerson.toString());

  //三、TreeSet 使用初始化比較器的方式

  System.out.println("-------------TreeSet在初始化時使用構造器------------");

  TreeSet<book> set=new TreeSet<book>(new BookComparator());

  set.add(new book("流浪地球",100));

  set.add(new book("三體",90));

  set.add(new book("大秦帝國",110));

  System.out.println(set.toString());

  System.out.println("-------------遍歷方式:一、使用迭代器遍歷------------");

  Iterator<book> iteBook = set.iterator();

  while(iteBook.hasNext()) {

   System.out.println(iteBook.next());

  }

  System.out.println("-------------遍歷方式:二、使用數組遍歷------------");

  Object[] objsBook = set.toArray();   

  for(int i=0;i<objsBook.length;i++) {

   System.out.println(objsBook[i]);

  }  

 System.out.println("-------------遍歷方式:三、使用foreach方式------------");
  for(book b :set) {
   System.out.println(b);
  } 

} }

 

class person implements Comparable<person>{

 String name;  int age;

 person(String name,int age){

  this.name=name;   this.age=age; 

    }

 @Override

 public String toString() {

  return "姓名:"+this.name+" 年齡:"+this.age;

 }

 @Override

 public int compareTo(person o) {

  if(o.age>this.age) {

   return 1;

  } else if(o.age<this.age) {

   return -1;

  }

  return 0;

 } }

class book {

 String name;  double price;

 book(String name,double price){

  this.name=name;   this.price=price;

    }

 @Override

 public String toString() {

    return "書名:"+this.name+" 價格:"+this.price;

 }  }

class BookComparator implements Comparator<book>{

 @Override

 public int compare(book o1, book o2) {

  if(o1.price>o2.price) {

   return 1;

  } else if(o1.price < o2.price){

   return -1;

  }   return 0;

 }

}

相關文章
相關標籤/搜索