當前位置:首頁 » 編程語言 » java的treeset

java的treeset

發布時間: 2022-09-06 10:46:43

『壹』 關於java Treeset排序

例: 對加入 TreeSet的Student對象 實現Comparable介面,通過在Student中重寫compareTo()方法確定該對象在TreeSet中的排序方式 Student類如下 class Student implements Comparableprivate int age;//重寫compareTo()方法public int compareTo(Object o){Student s = (Student) o;if (this.age < s.age )return -1;else if(s.age == this.age)return 0;elsereturn 1;}當Student對象加入TreeSet時,是按年齡從小到大排序的。

『貳』 關於java中TreeSet類的一些問題

范型E是TreeSet的類型參數,比較器的類型參數應該是TreeSet類型參數的父類
Person是比較器的類型參數,Worker是TreeSet的類型參數,Person是Worker的父類,所以沒毛病

『叄』 java TreeSet能存放兩個相同的元素嗎

TreeSet會調用集合元素的compareTo(Object obj)方法來比較元素之間大小關系,然後將集合元素按升序排列,這種方式就是自然排序。(比較的前提:兩個對象的類型相同),也就是說TreeSet是不能存放兩個相同的元素的。
TreeSet繼承於Set,而Set這個集合本身是不能存放兩個相同的元素的。

『肆』 請教大師一個關於java中TreeSet的構造方法的問題:

這一個TreeSet構造方法裡面傳遞的是一個比較器,也就是說兩個對象進行比較的時候,調用這個比較器進行比較。(或者說是比較兩個對象大小的標准)
API如下:

TreeSet(Comparator<? super E> comparator)

構造一個新的空 TreeSet,它根據指定比較器進行排序。

『伍』 java中TreeSet實現了Comparable介面嗎還是說添加到它裡面的元素實現了該介面

TreeSet是依靠TreeMap來實現的。
TreeSet是一個有序集合,TreeSet中的元素將按照升序排列,預設是按照自然排序進行排列,意味著TreeSet中的元素要實現Comparable介面。或者有一個自定義的比較器。
演算法可以看JDK的源代碼

『陸』 java中treeset定製排序和自然排序的區別

* TreeSet:
* 1.向TreeSet中添加的元素必須是同一個類的。
* 2.可以按照添加進集合中的元素的指定的順序遍歷。像String、包裝類等默認按照從小到大的順序遍歷。
* 3.自然排序:當向TreeSet中添加自定義類的對象時,有兩種排序方法:①自然排序 ②定製排序
* 4.自然排序:要求自定義類實現java.lang.Comparable介面並重寫其compareTo(Object obj)
* 在此方法中,指明按照自定義類的哪個屬性來排序。
*
* 5.向TreeSet中添加元素時,首先按照compareTo()進行比較,一旦返回0,雖然僅是兩個對象的
* 此屬性值相同,但是程序會認為這兩個對象是相同的,進而後一個對象就不能添加進來。
*
* >compareTo()與hashCode()以及equals()三者保持一致!
*

『柒』 求Java程序,TreeSet問題

importjava.util.Iterator;
importjava.util.Scanner;
importjava.util.TreeSet;
publicclassDay14_B{
staticScannersc=newScanner(System.in);
staticTreeSet<Double>ts=newTreeSet<Double>();
publicstaticvoidmain(String[]args){
while(ts.size()<10){
System.out.print("輸入:");
ts.add(sc.nextDouble());
}
for(Iterator<Double>it=ts.iterator();it.hasNext();){
System.out.print(it.next()+",");
}
sc.close();
}
}

『捌』 Java中TreeSet是關鍵字嗎

TreeSet是一個有序集合,其元素按照升序排列。
默認是按照自然順序排列,也就是說TreeSet中的對象元素需要實現Comparable介面。

『玖』 java中的treeset是實現了sortedset介面的set,但為什麼要叫treeset呢

treeset實現了sortedset介面,也就是重寫了裡面的方法,但具體實現的方式由實現的子類自己編寫,所以treeset在實現set集合採用的演算法是樹型演算法。

TreeSet是一個有序集合,TreeSet中的元素將按照升序排列,預設是按照自然排序進行排列,意味著TreeSet中的元素要實現Comparable介面。或者有一個自定義的比較器。Treeset演算法:

構造一個新的空TreeSet,它根據指定比較器進行排序。插入到該set的所有元素都必須能夠由指定比較器進行相互比較:對於set中的任意兩個元素e1和e2,執行comparator.compare(e1,e2)都不得拋出ClassCastException。如果用戶試圖將違反此約束的元素添加到set中,則add調用將拋出ClassCastException。
packagetest.treeset;

importjava.util.Comparator;
importjava.util.Iterator;
importjava.util.TreeSet;

publicclassTreeSetTest{
@SuppressWarnings("unchecked")
publicstaticvoidmain(String[]args){
TreeSetts=newTreeSet(newTeacher2.TeacherCompare());
ts.add(newTeacher2("zhangsan",2));
ts.add(newTeacher2("lisi",1));
ts.add(newTeacher2("wangmazi",3));
ts.add(newTeacher2("mazi",3));
Iteratorit=ts.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}

classTeacher2{
intnum;
Stringname;

Teacher2(Stringname,intnum){
this.num=num;
this.name=name;
}

publicStringtoString(){
return"學號:"+num+"姓名:"+name;
}

{//老師自帶的一個比較器
//o1中存放的事目標節點
//o2中存放時的紅黑二叉樹中的節點,從根節點開始比較
publicintcompare(Objecto1,Objecto2){
Teacher2s1=(Teacher2)o1;//轉型
Teacher2s2=(Teacher2)o2;//轉型
intresult=s1.num>s2.num?1:(s1.num==s2.num?0:-1);
if(result==0){
result=s1.name.compareTo(s2.name);
}
returnresult;
}

}

}

『拾』 java TreeSet問題

  1. TreeSet是集合,是用來存數據的,就像數組一樣,但TreeSet是動態的。

  2. TreeSet存的數據是無序號的,你不能通過get的方法獲得裡面的數據。

  3. TreeSet存數據是有順序的,這個順序是你規定的,規定方法就是通過實現Comparator介面。

  4. 你上面的存儲順序的規則就是static class compareToStudent implements Comparator {....... }這個方法,至於public int compareTo(Object o) {.....}那是它的一部分,你可以理解成:


    {
    ....
    if(result==0){
    publicintcompareTo(Objecto){.....}
    }
    }
    剩下的應該自己思考。。。
熱點內容
db2新建資料庫 發布:2024-09-08 08:10:19 瀏覽:170
頻率計源碼 發布:2024-09-08 07:40:26 瀏覽:778
奧迪a6哪個配置帶後排加熱 發布:2024-09-08 07:06:32 瀏覽:100
linux修改apache埠 發布:2024-09-08 07:05:49 瀏覽:208
有多少個不同的密碼子 發布:2024-09-08 07:00:46 瀏覽:566
linux搭建mysql伺服器配置 發布:2024-09-08 06:50:02 瀏覽:995
加上www不能訪問 發布:2024-09-08 06:39:52 瀏覽:811
銀行支付密碼器怎麼用 發布:2024-09-08 06:39:52 瀏覽:513
蘋果手機清理瀏覽器緩存怎麼清理緩存 發布:2024-09-08 06:31:32 瀏覽:554
雲伺服器的優點與缺點 發布:2024-09-08 06:30:34 瀏覽:734