一、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;
}
}