沒啥大用的TreeSet 實現自定義排序的注意事項

2021-10-22 16:07:40 字數 545 閱讀 4119

使用treeset儲存有序的集合時,應特別注意:

儲存string型別,因為string已經繼承了comparable介面,並重寫了compareto方法,所以可以直接預設排序

而泛型給的是我們自定義的類,直接儲存會報錯

需要 implements comparable,如:public class student implements comparable

然後override compareto()方法。

@override

public int compareto(student s)

string型別已經繼承了comparable介面,所以可以直接使用compareto方法。該方法預設按照首字母大小來排序。

對於上述的簡單判斷,可以進行改良。用三目運算子,可以減少**量。

int num = this.age - s.age;

return num == 0? this.name.compareto(s.name): num; // 如果第乙個條件判斷出相等,那就繼續判斷,如果沒有判斷出相等,就直接返回第乙個條件。

16 5 TreeSet的實現原理

treeset的實現原理 底層用紅黑樹,即二叉 treeset要注意的事項 1 往treeset新增元素的時候,如果元素本身具備了自然順序的特性,那麼就按元素自然順序的特性進行排序儲存。2 往treeset新增元素的時候,如果元素本身不具備了自然順序的特性,那麼該元素所屬的類必須要實現compara...

棧的自實現

include stdafx.h filo first in last out lifo last in first out define n 100 struct stack struct stack st 0 int isfull 棧滿返真 int isempty 棧空返真 void pushs...

atoi函式的自實現

atoi 表示 ascii to integer 是把字串轉換成整型數的乙個函式,應用在電腦程式和辦公軟體中。int atoi const char nptr 函式會掃瞄引數 nptr字串,會跳過前面的空白字元 例如空格,tab縮排 等。概括一下就是可以把乙個字串轉換成相應的整型數,並且可以自動跳過...