集合概念與作用
1現實生活中把很多事物湊在一起就是集合。java中的集合類:是一種工具,就像是容器,存儲任意數量的有共同屬性的對象。
2在類的內部,對數據進行組織;
簡單而快速的搜索大數量的條目
有的集合借口,提供了一系列排列有序的元素,並且可以在序列中間快速的插入或者刪除有關元素。
有的集合接口,提供了映射關系,可以通過關鍵字去快速查找到對應的唯一對象,而這個關鍵字是可以是任意類型。
3 Collection(List ,Queue,Set )
1)List和Queue:排列有序的可以重復的
2)Set:無序的
3)常用的是List(序列),Set(集)
ArrayList HashSet HashMap三個比較常用
List接口,有序可重復,可以精確的控制每個元素的插入位置,或刪除某個位置的元素
ArrayList,數組序列,是List的一個重要實現,底層是有數組實現的。
1)對象存入集合都會變成object類型,取出時需要類型轉換
2)add()添加一個值
add("位置","值")添加到指定位置(當位置的值大於當前最大值,則會出現異常(indexOutOfBoundsException))
addAll(Arrays.asList(數組));
Course[] course={new Course("2", "java"),new Course("3", "english")};
coursesToSelsct.addAll(Arrays.asList(course));
3)取得List中元素的方法
先獲得List的長度,size()
然後用get();
通過迭代器遍歷List
迭代器不具備存儲功能,依賴於某個集合存在,不能單獨存在。還有另一種方法for each()
Iterator it=coursesToSelect.Iterator()
while(it.hashNext())
{
course cr=(course)it.next();
}
for(Object obj:courseToSelect)//放入到集合中自動變成、object類型
5)修改List中的元素Set(“索引位置”,“新元素”)方法
6)刪除List中的元素remove()&removeAll()
刪除前先同get(“位置”)獲取對應的元素,打印輸出
remove((Course)courseToSelect.get("位置"))
removeAll(),其中arraysList.asList()方法是用來把數組轉化為集合類型
7)泛型,往集合中添加特定的類型的對象,會在編譯期間進行類型檢查,可以直接指定類型獲取集合元素(不需要進行類型轉換)
public List<Course> course
public TestGeneric(){
this.course=new ArrayList<Course>();
}
泛型中可存入其子類型的對象實例
泛型中的限定類型不能使用基本類型。
List<int> list=new ArrayList<int>()-->錯的,int是基本類型
List<Intger> list=new ArrayList<Integer>()
Set接口及其實現類--HashSet(沒有類似List提供Set()方法修改數據)
1)set中沒有get()方法,只能用foreach,iterator方法遍歷出每一個數據,且執行兩次可能得到結果的順序不一致
2)set集合無序,不可重復 。保存的是唯一獨有的一個數據對象引用,並且可以添加一個null