千鋒教育Java入門全套視頻教程(java核心技術(shù),適合java零基礎(chǔ),Java

p144~p179---集合
1.數(shù)組的特點(diǎn)
- 創(chuàng)建時必須賦予確定的空間大小(長度固定)-----使用中如果數(shù)據(jù)超過空間大小會出現(xiàn)ArrayIndexOutOfBoundsException報錯(下標(biāo)超出)
- 不能滿足實時動態(tài)新增元素的需求
- 存儲數(shù)據(jù)類型固定唯一,不能存儲事先定義的類型外的其他類型數(shù)據(jù)
- 不能滿足靈活存儲多種數(shù)據(jù)類型的需求
2.集合
- 動態(tài)擴(kuò)容,無需指定初始空間(原理是其源碼中有自動擴(kuò)容的方法:常量++和移位)
- 允許用戶不斷新增元素,允許存放不同數(shù)據(jù)
概念
- 相同類型的數(shù)據(jù)的聚合體
- 是一種用于存儲和操作數(shù)據(jù)的容器。它們提供了一系列方法和工具,用于添加、刪除、查找、遍歷和排序集合中的元素
- 是Java API所提供的一系列類,可以用于動態(tài)存放多個對象。--集合只能存對象
- 集合與數(shù)組的不同在于,集合是大小可變的序列,而且元素類型可以不受限定,只要是引用類型。(集合中不能放基本數(shù)據(jù)類型,但可以放基本數(shù)據(jù)類型的包裝類)
- 集合類全部支持泛型,是一種數(shù)據(jù)安全的用法。
ArrayList
- ArrayList相比數(shù)組的區(qū)別
- 容量的可擴(kuò)展性,數(shù)據(jù)類型只要是Object類型就行,存儲的必須是對象,不能存儲基礎(chǔ)數(shù)據(jù)類型。
Set (沒有下標(biāo),不可重復(fù))
- set集合最大的作用去重
- 循環(huán)使用迭代器:lterator
set去重的原理:
- 基于每個元素的hashCode()和equals()方法。
- 當(dāng)你向Set添加一個元素時,Set首先調(diào)用該元素的hashCode()方法獲取其哈希碼。然后,Set會檢查是否已經(jīng)存在具有相同哈希碼的元素。如果存在,Set還會調(diào)用元素的equals()方法進(jìn)行比較以確認(rèn)它們是否相等。如果元素的哈希碼和equals()方法都與已有元素匹配,Set會忽略該元素,不進(jìn)行重復(fù)添加。
集合怎么判斷兩個對象是同一個對象 ?
- hashCode()+equals()雙重判斷
標(biāo)簽: