陣列 集合 Map介面

2021-10-13 15:27:18 字數 3115 閱讀 1345

陣列array是用於儲存多個相同型別資料的集合

動態初始化:int a=new int[5]

靜態初始化:int a= int a=new int

length屬性獲取陣列長度

陣列一旦建立,長度不可變允許0長度的陣列

二維陣列:存放陣列的陣列

public class demo001 }}

return a;}}

list是乙個介面,他有兩個常用的子類arraylist和linkedlist,分別是基於陣列和鍊錶實現的

陣列arraylist遍歷快,因為儲存空間聯想;鍊錶linkedlist遍歷慢,因為儲存空間不聯絡,要去通過指標定位到下乙個元素,所有鍊錶遍歷慢

陣列插入元素和刪除元素需要重新申請記憶體,然後將憑藉結果儲存進去,成本很高.而這個動作對鍊錶來說,改變一下相鄰兩個元素的指標即可,所以鍊錶的插入和修改元素時效能非常高

用來存放物件的資料結構,長度可變,而且集合中可以存放不同型別的物件.

(陣列的缺點:長度不可變,訪問方式單一,插入,刪除等操作繁瑣)

collection介面

-- list介面 : 資料有序,可以重複。

-- arraylist子類

-- linkedlist子類

-- set介面 : 資料無序,不可以存重複值

-- hashset子類

-- map介面 : 鍵值對存資料

-- hashmap

boolean add(e e):新增元素。

boolean addall(collection c):把小集合新增到大集合中 。

boolean contains(object o) : 如果此 collection 包含指定的元素,則返回 true。

boolean isempty() :如果此 collection 沒有元素,則返回 true。

iteratoriterator():返回在此 collection 的元素上進行迭代的迭代器。

boolean remove(object o) :從此 collection 中移除指定元素的單個例項。

int size() :返回此 collection 中的元素數。

objec toarray():返回物件陣列

有序的collection(也成為序列).此介面的使用者可以對列表中每個元素的插入位置經確定控制,使用者可以根據元素的整數索引訪問,搜尋元素

特點:資料有序

允許存放重複元素元素都有索引

listiteratorlistiterator()

返回此列表元素的列表迭代器(按適當順序)。

listiteratorlistiterator(int index)

返回列表中元素的列表迭代器(按適當順序),從列表的指定位置開始。

void add(int index, e element)

在列表的指定位置插入指定元素(可選操作)。

boolean addall(int index, collection extends e> c)

將指定 collection 中的所有元素都插入到列表中的指定位置(可選操作)。

listsublist(int fromindex, int toindex)

返回列表中指定的 fromindex(包括 )和 toindex(不包括)之間的部分檢視。

e get(int index)

返回列表中指定位置的元素。

int indexof(object o)

返回此列表中第一次出現的指定元素的索引;如果此列表不包含該元素,則返回 -1。

內部用陣列存放資料,封裝了陣列的操作,每個物件都有下標

內部陣列預設初始容量10,不夠的會以1.5倍容量增長

雙向鍊錶,兩端效率高,底層就是陣列和鍊錶實現的

下標遍歷效率低,迭代器遍歷效率高

乙個不包含重複元素的collection,資料無序,無下標,常用於給資料去重

特點:hashset:底層是雜湊表,包裝了hashmap,相當於向hashset中存資料時,會把資料作為key存在內部的hashmap中(key不能重複)

treeset:底層就是treemap,也是紅黑樹形式,便於查詢資料

hashset實現中,當雜湊值相同的物件,會在同乙個hash值的位置儲存不同屬性的資料

boolean add(e e):新增元素。

boolean addall(collection c):把小集合新增到大集合中 。

boolean contains(object o) : 如果此 collection 包含指定的元素,則返回 true。

boolean isempty() :如果此 collection 沒有元素,則返回 true。

iteratoriterator():返回在此 collection 的元素上進行迭代的迭代器。

boolean remove(object o) :從此 collection 中移除指定元素的單個例項。

int size() :返回此 collection 中的元素數。

objec toarray():返回物件陣列

實現了set介面,由雜湊表支援(實際上是乙個hashmap).它不保證set的迭代順序,特別是他不保證該順序恆久不變.允許null元素

特點:可以根據鍵,找到對應的值

鍵不允許重複,否則會被覆蓋

存放的都是無序資料

初始容量16,預設載入因子0.75

hashmap的鍵要同時重寫hashcode()方法和equals()方法

hashcode()用來判斷確定hash值是否相同

equals()用來判斷屬性的值是否相同

equals()判斷資料如果相同,hashcode()必須相同

equals()判斷資料如果不同,hashcode()盡量不同

集合框架 Map介面

map介面 map中的集合,元素是成對存在的。每個元素由鍵和值兩部分組成 鍵值對 通過鍵可以找到對應的值。map中的集合成為雙列集合。需要注意的是,map中的集合不能包含重複的鍵,值可以重複 每個鍵只能對應乙個值。map中常用的集合為hashmap集合 linkedhashmap集合 hashmap...

JAVA 集合之Map介面

map介面 集合框架中的另乙個父介面 map集合 另名為雜湊表 用於儲存一一對應的元素資料,第乙個物件可以作為索引,第二個物件作為值,我們稱之為key value,鍵值對。1 以key value形式進行儲存。2 key與value都必須是引用型別。3 key可以為null。4 key與value是...

集合之Map介面1

一 map與collection並列存在。用於儲存具有對映關係的資料 key value 二 map 中的 key 和 value 都可以是任何引用型別的資料 三 map 中的 key 用set來存放,不允許重複,即同乙個 map 物件所對應的類,須重寫hashcode 和equals 方法。常用s...