陣列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...