1.集合的體系結構以及Collection集合 1.1 集合的體系結構: 單列集合:Collection接口 List接口:元素可重複 ArrayList類、LinkedList類 Set接口:元素不可以重複 HashSet類、TreeSet類 雙列集合:Map接口 HashMap類 1.2 Collection集合: 創建對象:Collection<String> c=new ArrayList(); 常用方法:所有單列集合通用的方法。 boolean add(E e):添加元素,返回值表示是否添加成功,使用ArrayList集合返回的是固定值true。 boolean remove(Object o):從集合中移除指定的元素,返回值表示是否移除成功 void clear():清空集合中的元素 boolean contains(Object o):判斷集合中是否存在指定的元素,true表示包含 boolean isEmpty():判斷集合是否爲空,true表示爲空 int size():集合的長度,也就是集合中元素的個數 1.3 Collection集合遍歷-迭代器 //1、通過集合的iterator方法獲取迭代器對象。 Iterator<String> it = coll.iterator(); //2、循環判斷是否有下一個元素。it.hasNext()方法 while(it.hasNext()){ //3、如果有下一個元素,那麼就獲取下一個元素。it.next()方法 String s = it.next(); System.out.println(s); } 2.list集合的遍歷以及數據結構 List集合的特點: 1、有序:存和取得順序一致。 2、元素可重複 3、有索引,可以使用fori的方式遍歷。 List集合常用方法: void add(int index,E element):在此集合中的指定位置插入指定的元素 E remove(int index):刪除指定索引處的元素,返回被刪除的元素 E set(int index,E element):修改指定索引處的元素,返回被修改的元素 E get(int index):返回指定索引處的元素 總結:在開發中我們一般是使用List集合而不是使用Collection集合。 方法分類: 增/添加: boolean add(E e):在集合的末尾添加元素e void add(int index, E e):在index索引出添加元素e 刪/移除: boolean remove(E e):根據元素e刪除 E remove(int index):根據索引index刪除元素 改/設置: E set(int index,E element):將索引index處的元素重新設置成element,返回值是被修改的元素。 查/獲取: E get(int index):根據索引獲取元素 int size():獲取集合的長度 遍歷方式: 1、首選:fori遍歷,只能針對有索引的集合遍歷。 2、迭代器iterator,但是不太推薦,麻煩。 迭代器併發修改異常:ConcurrentModificationException, 原因:集合中有一個記錄修改(添加和移除)次數的變量modCount。使用集合添加元素和刪除元素modCount都會++,也叫做實際修改次數++; iterator迭代器中也有一個期望修改次數的變量expectedModCount,默認值等於集合的modCount;每當我們調用迭代器的next() 方法時,內部都會將expectedModCount和modCount進行比較,如果不一樣就會拋出ConcurrentModificationException併發 修改異常。 ps:集合的長度發生了變化,集合中的modCount就會++; 解決辦法: 第一種:使用fori遍歷代替迭代器的方式遍歷。 第二種:不使用Itr迭代器,使用他的子類ListItr來遍歷集合,獲取的方式爲集合的listIterator(); 但是添加元素和刪除元素要使用迭代器中提供的add方法和remove() 增強for循環:第三種遍歷方式,底層使用的是迭代器,相當於迭代器的一種簡化遍歷方式。 語法:用於遍歷集合和數組 for(集合/數組元素類型 變量名:集合/數組對象){ //循環體,變量保存的就是每次遍歷的結果。 } 快捷鍵:集合/數組對象.for+回車 3.ArrayList集合和LinkedList集合 棧結構:先進後出。例如:彈夾 隊列結構:先進顯出。例如:打飯排隊。 數組結構:查詢快,增刪慢,ArrayList底層是數組結構 鏈表結構:查詢慢,增刪快,LinkedList底層是鏈表接結構
Java學習之隨堂筆記系列——day14
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.