Java基礎-知識點總結-Java集合框架(List)

Java集合框架(List)

【List集合中的具體常用對象】

 

                    Collection

 

                           |--List:元素是有序的,元素可以重複;因爲該集合體繫有索引

 

                                  |--ArrayList:底層數據結構使用的是數組結構;查詢速度很快,但增

 

                                                       加和刪除稍慢;線程不同步;ArrayList初始化時,默

 

                                                       認長度爲10,當向其中添加的元素超過10時,ArrayList

 

                                                       會重新創建一個對象長度增加50%,然後把原來列表

 

                                                       中的元素和剛添加的元素一同添加到新的ArrayList中

 

                                  |--LinkedList:底層數據結構使用的是鏈表結構;增加和刪除速度很

 

                                                       快,但查詢速度慢

 

                                  |--Vector:底層使用的是數組結構;線程同步;Vector初始化時,默

 

                                                       認長度爲10,當向其中添加的元素超過10時,Vector

 

                                                       會重新創建一個對象長度增加100%,然後把原來存在

 

                                                       的元素和剛添加的元素一同添加到新的Vector中

 

                                         +Vector中的枚舉

 

                                                Vector中有elements()方法,返回的是枚舉Enumeration

 

                                                枚舉是Vector特有的取出方式,其實枚舉和迭代器是一樣

 

                                                的,但由於枚舉的名稱和其中的方法名稱過長,所以被迭代

 

                                                器取代了。

 

                    LinkedList中的特有方法

 

                           添加:

 

                                  addFirst(Ee):將指定元素插入到此列表的開頭

 

                                  addLast(Ee):將指定元素添加到次列表的末尾

 

                                  從JDK1.6版本開始:

 

                                  offerFirst(Ee):將指定元素插入到此列表的開頭

 

                                  offerLast(Ee):將指定元素插入到此列表的末尾

 

                           獲取:

 

                                  getFirst():返回此列表中第一個元素,不刪除元素;若列表中沒有

 

                                                 元素,則會拋出NoSuchElementException異常

 

                                  getLast():返回此列表中最後一個元素,不刪除元素;若列表

 

                                                 中沒有元素,則會拋出NoSuchElementException異常

 

                                  removeFirst():返回此列表中的一個元素,但該元素會被刪除;若列

 

                                                 表中沒有元素,則會拋出NoSuchElementException異常

 

                                  removeLast():返回此列表中最後一個元素,但不刪除元素;若列表

 

                                                 中沒有元素,則會拋出NoSuchElementException異常

 

                                  從JDK1.6開始

 

                                  peekFirst():返回此列表中第一個元素,不刪除元素;若列表中沒

 

                                                 有元素,則返回null

 

                                  peekLast():返回此列表中最後一個元素,不刪除元素;若列表中沒

 

                                                 有元素,則返回null

 

                                  pollFirst():返回此列表中第一個元素,但該元素會被刪除;若列

 

                                                 表中中沒有元素,則返回null

 

                                  poolLast():返回此列表中最後一個元素,不刪除元素;若列表中沒

 

                                                 有元素,則返回null

 

 

【List中的共性方法】

 

                    集合框架中所有操作角標的方法,都是該體系特有的方法

 

                    由於List繼承自Collection,所以Collection中的共性方法,List中

 

                    都有,以下是List中的特有共性方法

 

                    增加:

 

  • add(int index,E element):在列表中的指定位置插入指定元素

  • addAll(int index,Collection<?extends E> c):在列表中的指定位置開始插入Collection中的所有元素

    刪除:

  • remove(int index):移除列表中指定位置上的元素

    修改:

  • set(int index,Eelement):用指定元素替換列表中指定位置上的元素

    查找:

  • get(int index):返回列表中指定位置上的元素

  • subList(int fromIndex,int toIndex):返回列表中從fromIndex(包含)和toIndex(不包含)之間的部分視圖

  • listIterator():返回列表中列表迭代器

    注意:List中判斷元素是否相同依據的是元素中的equals()方法

    Listiterator:

           List中特有的迭代器是Iteraotr的子接口

           由於在迭代時不可以通過集合對象的方法操作集合中的元素,否則會發生

           ConcurrentModificationException異常

           所以在迭代時,只能用迭代器的方法操作元素,但Iterator中的方法是有

           限的,只能對元素進行判斷,讀取和刪除。如果想要對元素進行其他操作

           則需要其子接口ListIterator該接口,該接口只能通過List集合中的

           listIterator()方法獲取。

           ListIterator中的方法:

                  |- add(E e):將指定元素添加到列表

                  |- hasPrevious():逆向遍歷列表,判斷前一位是否有元素

                  |- previous():返回前列表中一個元素

                  |- nextIndex():返回下一個元素的索引

                  |- previousIndex():返回前一個元素的索引

                  |- set(E e):用指定元素替換next或previous返回的最後一個元素

例:

 

 

ArrayList al = new ArrayList();
		al.add("java01");
		al.add("java02");
		al.add("java03");
		ListIterator li = al.listIterator();
		while (li.hasNext()) {
			if (li.next().equals("java02"))
				li.add("java007");
		}
		System.out.println("al=" + al);

 

 

 

             打印結果爲:al=[java01,java02,java007,java03]



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章