集合的概念:
是一種工具類,可以存儲任意數量、任意類型的對象(所以后面需要用到泛型,以約束集合中元素的類型)
集合的作用:
1、在類的內部對屬性進行組織
2、方便快速定位屬性位置
3、某些集合接口,提供了一系列排列有序的元素,可以在序列中快速插入或刪除
4、某些集合接口,提供了映射關系,可以通過關鍵字(key)快速查找到對應的唯一對象,而這個key可以是任意類型
集合與數組的差別:
1、數組長度固定,集合長度可變
2、數組只能通過下標訪問具體元素,集合則可通過任意類型查找所映射的具體對象
Java集合框架體系結構:根接口——子接口——實現類(並未全部列出)
List接口及其常用實現類——ArrayList
1、List是元素有序並且可以重復的集合,稱為序列
2、List可以精確插入或刪除某個位置的元素
3、ArrayList——數組序列,底層是由數組實現的
ArrayList實現的方法詳見Java API文檔:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh
注意:對象存入集合都會變成Object類型,取出時需要進行類型轉換
泛型:
集合中的元素可以是任意類型的對象,如果把某個對象放入集合,則會忽略他的類型,當作Object處理
1、泛型集合中,不能添加泛型規定的類型及其子類型以外的對象,編譯期間會進行類型檢查
2、泛型使用for each方法遍歷集合時,不需要用Object,直接使用原類型即可
3、泛型集合中的限定類型不能使用基本數據類型,可以通過使用包裝類限定允許存入的基本數據類型
Set接口及其實現類——HashSet
1、Set是元素無序並且不可以重復的集合,稱為“集”
2、HashSet——哈希集
3、Set中,同一個對象無論添加多少次,只有第一次會添加生效
4、Set中可以添加null
Map
Map提供了一種映射關系,其中的元素是以鍵值對(key-value)的形式存儲的,能夠根據key查找value,key和value可以是任意類型的對象
key和value屬於Entry類的對象實例
key值不能重復
一個value可以對應多個key,一個key只能對應一個value
Map的泛型:Map<K, V> //K為key值的類型,V為value值的類型
HashMap
HashMap中的Entry對象是無序排列的
key值和value值可以為null,但是只能有一個key為null,因為key不可重復