Collection集合及迭代器 Iterator

2021-09-02 14:14:41 字數 3313 閱讀 7747

1、兩種容器

a.陣列(存放任意型別,長度固定)

b.集合(存放物件型別,長度可變)

2、體系結構
單列集合 collection 

list (arraylist、linkedlist、vector)

set (hashset、linkedhashset、treeset)

3、常用方法
a.增

public

boolean

add(e)

b.刪 public

void

clear()

public

boolean

remove

(e)

c.改 public object[

]toarray()

public t[

]toarray

()

d.查 public

intsize()

public

boolean

isempty

()

1、獲取迭代器物件
iterator

iter = c.

iterator()

;//獲取迭代器

2、使用迭代器方法
iter.

hasnext()

;//是否存在下乙個元素

e e = iter.

next()

;//獲取下乙個元素

3、模板案例(快捷鍵 itit 回車)
//建立物件

collection

c =newarraylist

();//新增資料

c.add

("hello");

c.add

("world");

c.add

("good");

//獲取迭代器

iterator

iter = c.

iterator()

;//迴圈遍歷迭代器 itit

while

(iter.

hasnext()

)

4、增強for迴圈的使用(快捷鍵 集合名稱.for)
//建立物件

collection

c =newarraylist

();//新增資料

c.add

("hello");

c.add

("world");

c.add

("good");

//增強for

for(string s : c)

5、迭代器的注意事項
不能在遍歷集合的過程當中進行修改的操作,否則會出現併發修改異常

併發修改異常: concurrentmodificationexception

1、泛型的好處
a.提前檢查(執行時可能出現的型別轉換異常,提前到編譯時是否通過)

b.簡潔**(不需要手動向下轉型,快捷鍵直接提示出來型別)

2、泛型應用場景
a.泛型類

a.定義格式:

修飾符 class 類名稱《泛型》

//定義未知不具體型別

b.使用格式:

(建立物件)

類名稱《具體型別》 物件名稱 =

new 類名稱《具體型別》()

;//使用已知具體型別

b.泛型方法

a.定義格式:

修飾符 《泛型》 返回值 方法名稱 (引數)

//定義未知不具體型別

b.使用格式:

(呼叫方法)

具體返回值型別 返回值 = 方法名稱(具體引數)

;//使用已知具體型別

c.泛型介面

a.定義格式:

修飾符 inte***ce 介面名稱《泛型》

b.使用格式:

(實現類或者建立實現類物件時候)

第一種:修飾符 class 類名稱 implements 介面名稱《具體型別》

//使用已知具體型別

第二種:類名稱《具體型別》 物件名稱 =

new 類名稱《具體型別》()

;//使用已知具體型別

d.泛型萬用字元

a.含義:

不知道使用什麼資料型別的時候,泛型可以使用 ?

b.格式:

collection<

?> 可以傳遞各種泛型型別的物件

例如: 這些都可以傳遞 collection

collection

collection

c.高階使用: (number是integer的父類)

collection<

?extends

number

> 只能接收 number型別以及子類型別. (專業術語"泛型的上限")

collection<

?super number> 只能接收 number型別以及父類型別. (專業術語"泛型的下限")

1、買牌(造牌、存牌)
a.撲克  arraylist

pokerbox =

newarraylist

<

>()

;b.花色 arraylist

colors =

newarraylist

<

>()

;c.牌值 arraylist

numbers =

newarraylist

<

>()

;

2、洗牌(打亂牌順序)
集合工具類,隨機置換 collections.

shuffle

(pokerbox)

;

3、發牌(索引取模3)
a.三個玩家

arraylist

player01 =

newarraylist

<

>()

; arraylist

player02 =

newarraylist

<

>()

; arraylist

player03 =

newarraylist

<

>()

;b.底牌三張

arraylist

dipai =

newarraylist

<

>()

;

集合 Collection集合總結

list有序,可重複 abstractlist 父類abstractcollection抽象類,實現了list介面 arraylist 父類abstractlist 底層資料結構是陣列,查詢快,增刪慢。執行緒不安全,不同步,效率高 vector 父類abstractlist 底層資料結構是陣列,查詢...

Collection集合,List集合

一 collection集合 a collection 集合 單身漢集合 list 特點 有序,可重複,有索引 arraylist 重點掌握 linkedlist 儲存的元素不可重複,訪問順序一致 set 無序,元素不可重複,元素無索引 hashset 重點掌握 linkedhashset tree...

Collection集合 (set集合)

不包含重複元素的集合 即使新增重複元素之後,最終也只能顯示乙個 沒有帶索引的方法,所以不能使用普通的for迴圈遍歷 hashset 對集合的迭代順序不作任何保證 object類中有乙個方法可以獲取物件的雜湊值 public int hashcode 返回物件的雜湊碼值 物件的雜湊值特點 同乙個物件多...