當前位置:編程學習大全網 - 源碼下載 - 求大神告知 下面這個 java code是什麽意思啊

求大神告知 下面這個 java code是什麽意思啊

這段代碼應該是實現壹個map類對象的排序實現了壹個Comparable接口,然後調用了

comparaTo方法將元素進行了排序。最後將排序後的元素添加到sortedEntries裏

Comparable接口是壹個內置的可以自定義排序方式的內置接口,比如Integer,char等包裝類內部都實現了Comparable接口來自定義壹個排序的方式,實現的方法是compareTo(value){

//在代碼中,返回0,1,-1 3個參數 分別對應1交換位置-1不交換 0 比較的兩個值相同。

}

static <K,V extends Comparable<? super V>>

//壹個靜態的 類型必須是鍵值對並且是實現了Comparable接口的類型

SortedSet<Map.Entry<K,V>> entriesSortedByValues(Map<K,V> map) {

//排序集合傳入壹個Map的靜態對象並且鍵值對是K/V類型的入口排序按照他的值

//前邊壹整段應該都是名字寫的比較規範吧,知識有限只能了解這麽多

//括號中是參數傳入的是壹個Map類型的參數 map

SortedSet<Map.Entry<K,V>> sortedEntries = new TreeSet<Map.Entry<K,V>>(

//實例壹個對象 sortedEntries 他接收的是壹個TreeSet類型的變量保存的是指定的類型

//也就是Map.Entry<k,v>類型

new Comparator<Map.Entry<K,V>>() {

//排序沒有使用內置排序接口Comparable而是使用的Comparator他和Comparable的

//區別就是壹個是排序方法寫在實現了Comparable接口的內部

//壹個是當元素需要調用sort時才使用

@Override public int compare(Map.Entry<K,V> e1, Map.Entry<K,V> e2) {

//重寫了Comparator內部的compara方法 返回壹個int值

int res = e2.getValue().compareTo(e1.getValue());

//最後的實際排序還是使用的Comparable接口的comparaTo方法

//寫的有點啰嗦 應該是可以直接用Comparable排序的又new 了壹個

//Comparator,他是把兩種排序方式組合使用了,Comparable定義了排序的方式

//Comparator執行排序的操作

return res != 0 ? res : 1;

//返回結果 如果res不等於0 為真就返回res的值,假返回1

}

}

);

sortedEntries.addAll(map.entrySet());

//代碼截的不全 這應該是排序後將元素添加到整個隊列中。

return sortedEntries;

//然後將整個隊列返回

//個人理解有不對的地方諒解。

}

  • 上一篇:水泵遙控器價格 使用及功能介紹
  • 下一篇:ithub官網訪問流程,但是遠程倉庫總是連接失敗,這是為什麽?
  • copyright 2024編程學習大全網