1. 程式人生 > >對集合框架的一些概括總結之collection介面 子介面 子實現類

對集合框架的一些概括總結之collection介面 子介面 子實現類

                      -------android培訓java培訓、期待與您交流! --------

                我發現集合框架就是方法多了點 亂了點  整理一下還是感覺挺簡單的 

              1.  先聊一聊為什麼出現集合類吧                            因為呢面嚮物件語言對事物的體現都是以物件的形式,所以為了方便對多個物件的操作,就對物件進行儲存,集合就是儲存物件最常用的一種方式。

               2.  陣列也是用來儲存的容器那麼它跟集合有什麼區別呢 ?

  陣列雖然能儲存物件, 但是它的長度是固定的 而集合的長度是可以改變的    陣列可以存放基本資料型別也可以存放物件   而集合呢只可以放物件

                3.總結一下集合的特點吧                    

集合只用於儲存物件,集合長度是可變的,集合可以儲存不同型別的物件。                  4.  集合類中的關係圖 如下:

其實我們可以給他們拆分成兩大塊的

   5.一個是collection接口裡面主要包括list和set兩個子介面其中list介面下面有兩個經常用的實現類LinkedList    和ArrayList

      * 因為collection是介面所以只能通過子類來實現的

      * list可存放重複元素,元素存取是有序的裡面存放的資料都是有序的 因為底層資料結構是陣列其中連結串列     底      層也是陣列

     *set不可以存放重複元素,元素存取是無序的(你手寫的存入與打印出來的可能不一樣 它是根據hash值進行儲存的)

     * 因為Collection這個介面繼承了Iterable<E>這個介面所以實現Collection介面的集合取出元素的方式都是  iterator()  //返回在此 collection 的元素上進行迭代的迭代器。而這個迭代器是Iterable但是因為介面沒有構造所以返回的是它的子類物件

/*
 * Iterator的使用:
 *  
 * Collection中的iterator()返回的是一個Iterator.
 *   記住:返回的其實是一個迭代器的子類物件.但是,你可以用Iterator這個介面來接收這個子類物件.多型.
 *
 * Iterator:
 * 1:boolean hasNext()
           如果仍有元素可以迭代,則返回 true。
   2:Object next()
           返回迭代的下一個元素。
           
   NoSuchElementException 你已經取到最後一個元素了.你還繼續取元素,就會丟擲該異常.
 */

List除了實現collection介面的方法外 它還有特有的方法:
 
   void add(int index ,E element)               *  在列表的指定位置新增指定的元素                   

   object get(int index)                      * 返回列表中指定位置的元素
 
   int indextOf(object)                      *  返回指定元素第一次出現的索引

   ListIterator<E> listIterator()               *  列表迭代器  它可以逆向遍歷集合                 

   object remove(int index)                     *  移除列表中指定的位置元素 

   List subList(int fromIndex, int toIndex)     *  返回列表中指定的fromIndex(包括 )
         和toIndex(不包括)之間的部分檢視。
         按照起始和結束索引截取了一個子List
         用List接收(擷取的時候是左閉右開)

其中ArrayList和LinkedLis 是List的兩個最常用的實現子類


   ArrayList   資料結構是陣列  執行緒不安全  查詢速度快
   LinkedList    資料結構是連結串列  執行緒不安全  增刪速度快
   **這兩個效率比較高因為執行緒不安全**
   Vector        資料結構是陣列 執行緒安全 增刪速度快
(被ArrayList取代)

 ***************隨便寫的一個遍歷集合的小例子*************

package collection.jihe;

import java.util.ArrayList;
import java.util.Iterator;

public class ListDemo {

	/**
	 * 遍歷ArrayList集合
	 */
	public static void main(String[] args) {
		Student  s=new Student();//自定義類
		ArrayList arr=new  ArrayList();
		s.setName("ZhangSan");
		s.setAge(20);
		Student  s1=new Student();
		s1.setName("lisi");
		s1.setAge(23);
		arr.add(s);//講自定義物件放入集合
		arr.add(s1);
		Iterator<Student> it=arr.iterator();//獲取迭代器   用於取出集合中的元素
		while (it.hasNext()) {//迭代取值的過程
			
		Student ss=it.next();
		System.out.println(ss.getName()+"          "+ss.getAge());
			
		}
		
	}

}

--------- android培訓java培訓、期待與您交流! ----------