集合之家 後段

2021-09-16 12:04:59 字數 2467 閱讀 6999

前面講了資料結構,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給介面獲取返回的熱評資料 本以為能夠很順利的實現,結果...