1. 程式人生 > >Java中Collection和Collections的區別及原始碼

Java中Collection和Collections的區別及原始碼

1、java.util.Collection 是一個集合介面。它提供了對集合物件進行基本操作的通用介面方法。Collection介面在Java 類庫中有很多具體的實現。Collection介面的意義是為各種具體的集合提供了最大化的統一操作方式。

 Collection  
├List  
│├LinkedList  
│├ArrayList  
│└Vector  
│ └Stack  
└Set 
public interface Collection<E> extends Iterable<E> {
    ***
}
    增加:  
            1:add() 將指定物件儲存到容器中  
                          add 方法的引數型別是Object 便於接收任意物件  
            2:addAll() 將指定集合中的元素新增到呼叫該方法和集合中  
    刪除:  
            3:remove() 將指定的物件從集合中刪除  
            4:removeAll() 將指定集合中的元素刪除  
    修改  
            5:clear() 清空集合中的所有元素  
    判斷  
            6:isEmpty() 判斷集合是否為空  
            7:contains() 判斷集合何中是否包含指定物件  
                  
            8:containsAll() 判斷集合中是否包含指定集合  
                                使用equals()判斷兩個物件是否相等    
    獲取:           9:int size()    返回集合容器的大小  
      
    轉成陣列        10: toArray()   集合轉換陣列  


2、java.util.Collections 是一個包裝類。它包含有各種有關集合操作的靜態多型方法。此類不能例項化,就像一個工具類,服務於Java的Collection框架。
    import java.util.ArrayList;  
    import java.util.Collections;  
    import java.util.List;  
      
    public class TestCollections {  
          
        public static void main(String args[]) {  
            //注意List是Collection介面的實現
            List list = new ArrayList();  
            double array[] = { 112, 111, 23, 456, 231 };  
            for (int i = 0; i < array.length; i++) {  
                list.add(new Double(array[i]));  
            }  
            Collections.sort(list);  
            for (int i = 0; i < array.length; i++) {  
                System.out.println(list.get(i));  
            }  
            // 結果:23.0 111.0 112.0 231.0 456.0  
        }  
    }  
public class Collections {
    // Suppresses default constructor, ensuring non-instantiability.
    private Collections() {
    }