首先面臨這樣一段**,根據注釋**的意思是根據childr篩選資料
@suppresswarnings("unchecked")
public static list getlist(string orgid, string userid,list child)
if (null != list && list.length > 0) }}
iterator itorg = temp.keyset().iterator();
while (itorg.hasnext())
order.add(temp.get(itorg.next()));
return order;
}
簡單解釋一下ea_******object,這個是系統內為方便使用map而定義的輔助類,只有key,value兩個屬性
首先開始讓我鬱悶的是order.add(temp.remove(list[i]));根本不明白這是個什麼意思,因為我竟然忘了map的remove後返回什麼。直接往下看又看到迴圈map儲存值,我一下子斷定,這個方法對資料根本沒有篩選,資料沒有多也沒有少。而注釋上注釋著該方法是根據list child進行篩選。
也許大家都在嘲笑,這可不是沒有多和少資料嗎,更也許大家眨第二眼的時候已經看出來這是個排序了。
將集合資料放到map中,根據方法內得到的陣列資料,如果符合則會執行order.add(temp.remove(list[i]));也就是在map中刪除匹配的資料,然後map的remove方法返回對應key的值,這樣資料在map中刪除時也存到集合的最前面了。最後遍歷map,將剩下的資料存放到集合中,這樣就將傳進來的集合,根據方法內獲得陣列的資料,進行了排序,一些資料優先的放到了集合的前面。
這貌似簡單的讓人蛋疼,可是對於數月不動**的我來說,他讓我趴下了,無語和狂忍中。
請您到iteye看我的原創:
Map基礎知識引起的很糾結的問題
首先面臨這樣一段 根據注釋 的意思是根據childr 篩選資料 suppresswarnings unchecked public static list getlist string orgid,string userid,list child if null list list.length 0...
map的基礎知識
hashmap 1 hashmap是乙個雜湊表 hashtable 用來存放鍵值對 key value 順序是無序的 2 hashmap不是線性安全,並且是非同步的。3 hashmap的key和value值可以為空,但是key是只能乙個為空,value值可以多個為空。4 hashmap的遍歷 1 m...
電腦的基礎知識 電腦的基礎知識
電腦的組成部分與其作用 一 軟體系統 軟體系統的組成分別是 作業系統 應用軟體等。其應用軟體是指特定領域開發 並為特定目的服務的一類軟體。而作業系統是位於底層硬碟與使用者之間溝通的橋梁。使用者可以通過作業系統的使用者頁面,輸入命令,實現使用者需求。二 硬體系統 硬體系統是指構成計算機的物理裝置,即由...