前面講了資料結構,list和queue今天說的是set和map
set(無序集合,集合結構)
list是可以通過下標來獲取某個元素。set中的元素是不可重複的
set判斷元素相同的依據是什麼?
加入元素時,和集合中的每乙個元素對比
依據:先呼叫物件的hashcode方法
如果hash值不相同,說明這裡兩個物件一定不相同。
如果hash值相同,在呼叫equals方法,判斷兩個物件的屬性是否完全相同,如果返回true,則相同,返回false,則不相同
元素相同時,新元素加不進去。
linkedhashset是乙個具有預知迭代順序的無序集合。
treeset(樹結構)
treeset是乙個具有排序功能的無序集合而且元素必須排序,不同型別不能比較。
預設情況下:排序的依據是物件所在的類是否實現comparto介面(內部比較器)
comparator外部比較器
優先選則內部比較器,如果內部比較器不能用,在使用外部比較器,不能修改原始碼,只能使用外部比較器。
使用內部排序比較器排序,叫自然排序
使用外部排序比較器排序,叫定製排序
如果兩個都使用,會使用定製排序
下面講的是map
map:鍵值對(key—value)
map是乙個介面,但不是collection的子介面!
map的鍵和值可以是任意型別,hashmap的鍵值對之間是無序的
entry是乙個鍵值對
常用實現類:
hashmap
判斷重複的依據是什麼?
hashcode and equals,值可以重複
鍵不可重複,如果重複,替換原有的。
通過某個鍵獲取某個值
string str=map.get(「jim」);
列印:鍵值對之間是無序的
linkendhashmap
鍵值對之間的順序是新增時的順序
treemap
也要有內部或者外部比較器和treeset一樣
hashset linkedhashset treeset
無序,不可重複雜湊 鍊錶維護先後順序,雜湊 必須要排序,(二叉樹, 樹結構)
hashmap linkehashmap treemap
鍵值對之間無序鍵不可重複 鍊錶維護先後順序 必須按鍵排序(樹結構)
他們啥子關係?
set底層使用map實現,hashset使用的是hashmap,linkedhashset使用的是linkedhashmap,treeset
使用的是treemap
到這集合就講完了我們來總結一下
總結集合:
collection(介面)
set 無序不可重複 判斷元素的依據:hashcode&equals方法
hashset 無序不可重複
linkedhashset 鍊錶維護先後順序
treeset 具有排序功能,內部比較器-自然排序,外部排序-定製排序
list 有序可重複
arraylist 陣列實現,順序
linkedlist 鍊錶實現,鏈式儲存。
stack:先進後出
queue 佇列,先進先出
linkedlist
map 無序鍵值對
hashmap 無序鍵值對
linkehashmap 使用鍊錶維護鍵值對之間的先後順序
treemap 具有排序功能,必須使用鍵排序。內部比較器-自然排序,外部比較器-定製排序
後段開發工程師面試題 三
range 函式說明 range start,stop step 根據start與stop指定的範圍以及step設定的步長,生成乙個序列。range示例 range 5 0,1,2,3,4 range 1,5 1,2,3,4 range 0,6,2 0,2,4 xrange 函式說明 用法與rang...
RCurl汽車之家抓取
junjun 2016年4月20日 參考 library rcurl loading required package bitops install.packages xml library xml library reshape 偽裝報頭 myheader c user agent mozilla...
Scrapy IT之家評論爬蟲
最近在學習python爬蟲,這裡推薦乙個入門爬蟲的部落格系列 博主寫的對新手很友好,很適合入門。中做的改進和遇到的問題。根據原文,我的思路如下 獲取首頁最熱排行裡文章的url 根據對應url獲取newsid,再將newsid和type資料post給介面獲取返回的熱評資料 本以為能夠很順利的實現,結果...