java基礎--迭代器、ArrayList與LinkedList、去重方法的解析
阿新 • • 發佈:2019-01-27
一.集合中的一些方法
1.addAll將指定的集合中的所有元素都新增到該集合中
與add的區別:add是將指定集合作為一個元素新增進去。
2.removeAll
刪除此集合與指定集合中元素的交集
3.retainAll
保留此集合與指定集合中元素的交集
注意:這三種方法都有boolean型別的返回值,如果呼叫該方法的集合發生改變,則返回true,反之,則返回false。
二.迭代器
主要作用:遍歷集合實現的方法//從集合中獲取迭代器 Iterator iterator = c.iterator(); //判斷是否有下一個元素 boolean rel = iterator.hasNext(); System.out.println(rel); //如果有下一個元素 if (rel) { //獲取集合中的元素 Object next = iterator.next(); System.out.println(next); }
實際上,集合內部有一個指標,當使用迭代器呼叫hasNext方法時,會判斷下一個位置是否為空,如果不為空,則迭代器將呼叫Next方法將指標向下移一位,並獲取該位置元素。
三.List中特有的幾個方法
1.add(int index,Object obj)在指定位置新增元素,注意不能超過集合的size
2.set(index,obj)
替換該角標位置的元素
3.get(int index)
獲取該角標對應的元素
4.remove(int index)
刪除對應角標的元素,並返回該元素
四.List特有的迭代器
ListIterator方法
當想通向集合中新增元素並通過迭代器遍歷時,如果直接使用迭代器遍歷,會出現ConcurrentModificationException併發修改異常,這時候應該通過list中的ListIterator新增元素方法,就能避免異常。
五.去重方法解析
去重方法的核心語句是if(!list.contains()),所以核心方法是contains方法,而這個方法的核心是通過呼叫Object的equals方法,而這個方法比較的是物件的地址,但使用去重方法是一般會建立一個新的物件來存放去重後的集合,所以地址必然不一樣,所以會去重失敗。
所以需要我們根據實際需求重寫equals方法來進行去重。
六.ArrayList與LinkedList
ArrayList陣列實現
查詢快 增刪慢
LinkedList連結串列實現
查詢慢 增刪塊