Java中的Collection集合介面常用方法

2021-08-19 01:59:50 字數 3194 閱讀 7823

collection 總介面

--| list 特徵 有序 可重複

----| arraylist 底層維護的是乙個object型別的陣列,如果使用無參構造方法建立arraylist集合,預設的容量為10

​ 用帶有引數的構造方法,建立arraylist集合,傳入的initcapacity是多少,容量就是多少

​ 特徵: 增刪慢 查詢快

​ newcapacity = oldcapacity + (oldcapacity >> 1) 二進位制位運算

----| linkedlist 底層維護的是乙個雙向鍊錶 特徵是增刪快 查詢慢

----| vector 執行緒安全的arraylist 和arraylist基本相同,jdk1.0的古老產物。效率低於arraylist

--| set 特徵 無序 不可重複

----| hashset 底層維護是乙個雜湊表,儲存效率極高

​ 乙個自定義類物件放入到hashset中,需要經歷如下過程:

​ 通過當前類物件的hashcode,獲取到當前類物件的雜湊值,進行移位運算,計算出當前元素應該儲存到雜湊表中的位置。

​ 情況1: 當前位置沒有元素,直接放入

​ 情況2: 當前位置已經存在其他元素。需要呼叫該元素的equals方法,進行比較,如果比較結果為兩個元素不同,能夠放入,兩個元素相同,不能放入。

----| treeset 樹形結構的set集合

​ 能夠放入treeset中的元素必須有自然順序,或者提供【比較規則】

​ 乙個自定義類物件,想要放入到treeset集合中,有兩種方式

​ 1. 當前類【遵從】comparable介面,實現compareto(object o)方法

​ 2. 實現乙個自定義的比較器【遵從】comparator介面,實現compare(object o1, object o2)方法

collection中的方法

//新增方法:

add(object

o) //新增指定元素

addall(collection

c) //新增指定集合

//刪除方法:

remove(object

o) //刪除指定元素

removeall(collection

c) //輸出兩個集合的交集

retainall(collection

c) //保留兩個集合的交集

clear() //清空集合

//查詢方法:

size() //集合中的有效元素個數

toarray() //將集合中的元素轉換成object型別陣列

//判斷方法:

isempty() //判斷是否為空

equals(object

o) //判斷是否與指定元素相同

contains(object

o) //判斷是否包含指定元素

containsall(collection

c) //判斷是否包含指定集合

list中的方法
//新增方法:

add(int

index, object

o) //向指定位置新增元素

addall(int

index, collection

c) //向指定位置新增集合

//刪除方法

remove(int

index) //刪除指定元素

//查詢方法:

get(int

index) //獲取指定位置的元素

indexof(object

o) //獲取指定元素的位置

lastindexof(object

o) //獲取指定元素最後一次出現的位置

//修改方法:

sublist(int

fromindex, int

toindex) //擷取子集合從fromindex到toindex,要頭不要尾

set(int

index, object

o) //修改指定位置的元素

arraylist中特有的方法
ensurecapacity(int

mincapactiy) //判斷當前陣列中的元素個數是否大於指定的mincapacity

trimtosize() //修改陣列容量為當前陣列有效元素個數

linkedlist中特有的方法
//查詢方法:

getfirst() //獲取集合中的第乙個元素

getlast() //獲取集合中的最後乙個元素

//新增方法:

addfirst(object

o) //在集合的第乙個位置新增指定元素

addlast(object

o) //在集合的最後乙個位置新增指定元素

//刪除方法:

removefirst() //刪除集合中的第乙個元素

removelast() //刪除集合中的最後乙個元素

collection中的迭代器iterator方法
iterator

iterator(); //迭代器構造方法

boolean

hasnext() //判斷是否有下乙個元素

object

next() //獲取當前元素

void

remove() //刪除通過next()獲取的元素,在next()之後使用,不可以單獨使用

list中的迭代器 listiterator方法
listiterator

listiterator(); //迭代器建構函式

boolean

hasnext() //判斷是否有下乙個元素

boolean

hasprevious() //判斷是否有上乙個元素

object

next() //獲取當前元素

object

previous() //獲取上乙個元素

void

remove() //刪除通過next()獲取的元素,在next()之後使用,不可以單獨使用

add(object

o) //新增指定元素

set(object

o) //修改指定元素

intnextindex() //獲取當前元素所在位置

set中的方法

set介面沒有特有的方法,collection中的方法在這裡全部適用

Collectio中的Set介面

set介面 儲存無序的,不可重複的元素。set中常用的方法都是collection下定義的。主要包括hashset linkedhashset和treeset。往set中新增元素的時候,首先計算這個元素的雜湊值,根據這個雜湊值來決定儲存在記憶體的哪個位置上。如果這個位置上已經儲存了其他元素,及根據e...

solr 建立指定路由的collection

1.登入solr其中乙個例項所在的主機 2.生成配置檔案 solrctl instancedir generate home solr configs 修改solrconfig.xml 和 schema.xml 3.上傳配置到zk solrctl instancedir create home so...

java中的演算法

第一種 迴圈 for int x 1 x 500 x 第二種 bigdecimal double x 0 double y 0 bigdecimal xbig new bigdecimal x bigdecimal ybig new bigdecimal y bigdecimal result ne...