找尋幸福的方向

關於部落格
  • 57750

    累積人氣

  • 12

    今日人氣

    0

    訂閱人氣

100609_Java容器

測試 Carpool Service : Register Request
 
 
Collection
  List : 實作 java.util.List , 可依物件放置至容器中的順序來排列物件
  Set  : 實作 java.util.Set  , 不接受重複的物件,並可擁有自己的一套排序規則
 
 
[ 演算法理論 ]
List :
List 本身是一個列表,有著先後順序。所以,要實作這個演算法必須提供有順序概念的 method()
  • add( object )
  • remove( object )
  • clear()

[ 演算法實作 ]

List 在繼承架構上如下

Iterable<interface>

  ↑

Colletion<interface>

  ↑

 List<interface>

  ↑                         ↑

ArrayList<implement> , LinkList<implement>

 

Iterable 算是為了 迭代做了準備,這個interface必須實作 iterator() function 回傳 Iterator interface 的物件

宣告上是這樣子的

public interface Iterable<T>()

{

    Iterablor<T> iterator();

}

Collection 則是屬於通用的元素容器概念,有簡單的加入、移除、判斷的Method
public interface Collection<E> extends Iterable<E>
{
    int size();
    boolean isEmpty();
    boolean contains( Object o );
    Iterator<E> iterator();
    <T> T[] toArray(T[] a);
    boolean add( E o );
    boolean remove( Object o );
    void removeAll( Collection<?> c ); // 不懂
    ......
}
再來才是 List 的interface
public interface List<E> extends Collection<E>
{
    ...
    E get(int Index);
    E set(int index,E element);
    void add(int index , E element );
    E remove(int index);
    int indexOf(Object o);
    lastIndexOf(Object o);
    List<E> subList(int fromIndex,int toIndex);
    ...
}
============== 使用 ArrayList ===================
實際上在inherit過程中,除了 interface規定了 各概念的介面。實際上也有提供了 Abstract Class(每一個interface)以供使用。
而討論了 各 interface 後,就要討論怎麼實現了,目前討論的是 ArrayList
ArrayList 是一個已經實作好的 container ,直接使用就可以了,直觀上,可以用
利用 add( object ) 加入
利用 get(index) 取得
 
而由於 Iterator 有被實現,取得 Iterator 也行。
while( iterator.hasNext())
{
    System.out.print( iterator.next() +" " );
}
============== 使用 LinkedList ===================
在實作上,如果選擇使用 LinkedList ,那就代表使用方覺得會經常性的插入與移除element。
LinkList 本身有自己獨特的 Method
  • addFirst()
  • getFirst()
  • addLast()
  • getLast()
  • removeFirst()
  • removeLast()
使用  LinkList 可以實現 Stack 和 Queue
Stack 先進後出 push , pop ( addFirst , removeFirst )
Queue 先進先出 offer , poll ( addFirst , removeLast )

 
java.util.Set ( 不可重複元素 )
HashSet ( 依HashSet的排序當標準 )
LinkedHashSet ( 像LinkedList般排序 )
TreeSet ( 像字典一樣的排序 )
EmumSet
 
HashMap的應用說明
 

 

相簿設定
標籤設定
相簿狀態